From 687d43b0ab6e3e3ddfe867767c210f0a1cfb38a7 Mon Sep 17 00:00:00 2001 From: Patrick Myers Date: Wed, 25 May 2022 09:06:53 -0500 Subject: [PATCH 001/119] added external xtensor within PhotonInteraction for all shell photoelectric xs to utilize contiguous memory in calculate_xs --- include/openmc/photon.h | 2 +- src/photon.cpp | 26 +++++++++++--------------- src/physics.cpp | 6 +++--- 3 files changed, 15 insertions(+), 19 deletions(-) diff --git a/include/openmc/photon.h b/include/openmc/photon.h index e8ec82d10..50ee228c4 100644 --- a/include/openmc/photon.h +++ b/include/openmc/photon.h @@ -36,7 +36,6 @@ public: int threshold; double n_electrons; double binding_energy; - xt::xtensor cross_section; vector transitions; }; @@ -82,6 +81,7 @@ public: // Photoionization and atomic relaxation data vector shells_; + xt::xtensor cross_sections_; // Compton profile data xt::xtensor profile_pdf_; diff --git a/src/photon.cpp b/src/photon.cpp index b0cd8aa87..3f9ff6dbf 100644 --- a/src/photon.cpp +++ b/src/photon.cpp @@ -16,6 +16,9 @@ #include "xtensor/xbuilder.hpp" #include "xtensor/xoperation.hpp" #include "xtensor/xview.hpp" +#include "xtensor/xmath.hpp" +#include "xtensor/xslice.hpp" +#include "xtensor/xtensor_forward.hpp" #include #include @@ -125,6 +128,7 @@ PhotonInteraction::PhotonInteraction(hid_t group) } shells_.resize(n_shell); + cross_sections_.resize({energy_.size(), n_shell}); // Create mapping from designator to index std::unordered_map shell_map; @@ -155,13 +159,14 @@ PhotonInteraction::PhotonInteraction(hid_t group) read_attribute(tgroup, "num_electrons", shell.n_electrons); // Read subshell cross section + xt::xtensor xs; dset = open_dataset(tgroup, "xs"); read_attribute(dset, "threshold_idx", shell.threshold); close_dataset(dset); - read_dataset(tgroup, "xs", shell.cross_section); + read_dataset(tgroup, "xs", xs); - auto& xs = shell.cross_section; - xs = xt::where(xs > 0.0, xt::log(xs), -500.0); + auto cross_section = xt::view(cross_sections_, xt::range(shell.threshold, shell.threshold + xs.size()), i); + cross_section = xt::where(xs > 0.0, xt::log(xs), -500.0); if (object_exists(tgroup, "transitions")) { // Determine dimensions of transitions @@ -565,19 +570,10 @@ void PhotonInteraction::calculate_xs(Particle& p) const incoherent_(i_grid) + f * (incoherent_(i_grid + 1) - incoherent_(i_grid))); // Calculate microscopic photoelectric cross section - xs.photoelectric = 0.0; - for (const auto& shell : shells_) { - // Check threshold of reaction - int i_start = shell.threshold; - if (i_grid < i_start) - continue; + const auto& xs_upper = xt::row(cross_sections_, i_grid); + const auto& xs_lower = xt::row(cross_sections_, i_grid + 1); - // Evaluation subshell photoionization cross section - xs.photoelectric += - std::exp(shell.cross_section(i_grid - i_start) + - f * (shell.cross_section(i_grid + 1 - i_start) - - shell.cross_section(i_grid - i_start))); - } + xs.photoelectric = xt::sum(xt::exp(xs_upper + f * (xs_upper - xs_lower)))[0]; // Calculate microscopic pair production cross section xs.pair_production = std::exp( diff --git a/src/physics.cpp b/src/physics.cpp index 13dd063de..38d74dbed 100644 --- a/src/physics.cpp +++ b/src/physics.cpp @@ -358,9 +358,9 @@ void sample_photon_reaction(Particle& p) continue; // Evaluation subshell photoionization cross section - double xs = std::exp(shell.cross_section(i_grid - i_start) + - f * (shell.cross_section(i_grid + 1 - i_start) - - shell.cross_section(i_grid - i_start))); + double xs = std::exp(element.cross_sections_(i_grid - i_start) + + f * (element.cross_sections_(i_grid + 1 - i_start) - + element.cross_sections_(i_grid - i_start))); prob += xs; if (prob > cutoff) { From 6df0286b2e20e39b4eff8d93b262821086a9304f Mon Sep 17 00:00:00 2001 From: Patrick Myers Date: Wed, 25 May 2022 09:14:10 -0500 Subject: [PATCH 002/119] added clang-format --- src/photon.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/photon.cpp b/src/photon.cpp index 3f9ff6dbf..1be515a62 100644 --- a/src/photon.cpp +++ b/src/photon.cpp @@ -14,11 +14,11 @@ #include "openmc/settings.h" #include "xtensor/xbuilder.hpp" -#include "xtensor/xoperation.hpp" -#include "xtensor/xview.hpp" #include "xtensor/xmath.hpp" +#include "xtensor/xoperation.hpp" #include "xtensor/xslice.hpp" #include "xtensor/xtensor_forward.hpp" +#include "xtensor/xview.hpp" #include #include @@ -165,7 +165,8 @@ PhotonInteraction::PhotonInteraction(hid_t group) close_dataset(dset); read_dataset(tgroup, "xs", xs); - auto cross_section = xt::view(cross_sections_, xt::range(shell.threshold, shell.threshold + xs.size()), i); + auto cross_section = xt::view(cross_sections_, + xt::range(shell.threshold, shell.threshold + xs.size()), i); cross_section = xt::where(xs > 0.0, xt::log(xs), -500.0); if (object_exists(tgroup, "transitions")) { From 7484618c7c93d3bb75fe6decc0104e3201129ad6 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Tue, 5 Apr 2022 13:01:03 -0500 Subject: [PATCH 003/119] Adding sample methods to univariate distribution classes --- openmc/stats/univariate.py | 123 +++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) diff --git a/openmc/stats/univariate.py b/openmc/stats/univariate.py index e4a9b8f92..ea8c9f943 100644 --- a/openmc/stats/univariate.py +++ b/openmc/stats/univariate.py @@ -60,6 +60,10 @@ class Univariate(EqualityMixin, ABC): elif distribution == 'mixture': return Mixture.from_xml_element(elem) + @abstractmethod + def sample(p, seed=None): + pass + class Discrete(Univariate): """Distribution characterized by a probability mass function. @@ -115,6 +119,26 @@ class Discrete(Univariate): cv.check_greater_than('discrete probability', pk, 0.0, True) self._p = p + def sample(self, n_samples=1, seed=None): + np.random.seed(seed) + + if len(self.x) == 1: + return np.full((n_samples), self.x[0]) + + out = np.zeros((n_samples,)) + for i, xi in enumerate(np.random.rand(n_samples)): + c = 0.0 + for j, prob in enumerate(self.p): + c += prob + if (xi < c): + out[i] = self.x[j] + break + return out + + def normalize(self): + norm = sum(self.p) + self.p = [val / norm for val in self.p] + def to_xml_element(self, element_name): """Return XML representation of the discrete distribution @@ -240,6 +264,10 @@ class Uniform(Univariate): t.c = [0., 1.] return t + def sample(self, n_samples=1, seed=None): + np.random.seed(seed) + return np.random.uniform(self.a, self.b, n_samples) + def to_xml_element(self, element_name): """Return XML representation of the uniform distribution @@ -341,6 +369,14 @@ class PowerLaw(Univariate): cv.check_type('power law exponent', n, Real) self._n = n + def sample(self, n_samples=1, seed=None): + np.random.seed(seed) + xi = np.random.rand(n_samples) + pwr = self.n + 1 + offset = self.a**pwr + span = self.b**pwr - offset + return np.power(offset + xi * span, (1/pwr)) + def to_xml_element(self, element_name): """Return XML representation of the power law distribution @@ -414,6 +450,16 @@ class Maxwell(Univariate): cv.check_greater_than('Maxwell temperature', theta, 0.0) self._theta = theta + def sample(self, n_samples=1, seed=None): + np.random.seed(seed) + self.sample_maxwell(self.theta, n_samples) + + @staticmethod + def sample_maxwell(t, n_samples): + r1, r2, r3 = np.random.rand(3, n_samples) + c = np.power(np.cos(0.5 * np.pi * r3), 2) + return t * (np.log(r1) + np.log(r2) * c) + def to_xml_element(self, element_name): """Return XML representation of the Maxwellian distribution @@ -502,6 +548,13 @@ class Watt(Univariate): cv.check_greater_than('Watt b', b, 0.0) self._b = b + def sample(self, n_samples=1, seed=None): + np.random.seed(seed) + w = Maxwell.sample_maxwell(self.a, n_samples) + u = np.random.uniform(-1., 1., n_samples) + aab = self.a * self.a * self.b + return w + 0.25*aab + u * np.sqrt(aab*w) + def to_xml_element(self, element_name): """Return XML representation of the Watt distribution @@ -588,6 +641,10 @@ class Normal(Univariate): cv.check_greater_than('Normal std_dev', std_dev, 0.0) self._std_dev = std_dev + def sample(self, n_samples=1, seed=None): + np.random.seed(seed) + return np.random.normal(self.mean_value, self.std_dev, n_samples) + def to_xml_element(self, element_name): """Return XML representation of the Normal distribution @@ -694,6 +751,12 @@ class Muir(Univariate): cv.check_greater_than('Muir kt', kt, 0.0) self._kt = kt + def sample(self, n_samples=1, seed=None): + # https://permalink.lanl.gov/object/tr?what=info:lanl-repo/lareport/LA-05411-MS + np.random.seed(seed) + sigma = np.sqrt(4.*self.e0*self.kt/self.m_rat) + return np.random.normal(self.e0, sigma, n_samples) + def to_xml_element(self, element_name): """Return XML representation of the Watt distribution @@ -803,6 +866,63 @@ class Tabular(Univariate): cv.check_value('interpolation', interpolation, _INTERPOLATION_SCHEMES) self._interpolation = interpolation + def cdf(self): + if self.interpolation not in ('histogram', 'linear-linear'): + raise NotImplementedError('Can only generate CDFs for tabular ' + 'distributions using histogram or ' + 'linear-linear interpolation') + c = np.zeros_like((len(self.x),)) + if self.interpolation == 'histogram': + c[1:] = self.p * np.diff(self.x) + elif self.interpolation == 'linear-linear': + c[1:] = 0.5 * np.diff(self.p) * np.diff(self.x) + return np.cumsum(c) + + def sample(self, n_samples=1, seed=None): + np.random.seed(seed) + xi = np.random.rand(n_samples) + cdf = self.cdf() + + # get CDF bins that are above the + # sampled values + c_i = np.full(n_samples, cdf[0]) + cdf_idx = np.zeros_like(n_samples) + for i, val in enumerate(cdf): + mask = xi > val + c_i[mask] = val + cdf_idx[mask] = i + + # get table values at each index where + # the random number is less than the next cdf + # entry + x_i = np.array([self.x[i] for i in cdf_idx]) + p_i = np.array([self.p[i] for i in cdf_idx]) + + if self.interpolation == 'histogram': + # mask where probability + pos_mask = p_i > 0.0 + p_i[pos_mask] = x_i[pos_mask] + (xi[pos_mask] - c_i[pos_mask]) \ + / p_i[pos_mask] + neg_mask = not pos_mask + p_i[neg_mask] = x_i[neg_mask] + return p_i + elif self.interpolation == 'linear-linear': + # get variable and probability values for the + # next entry + x_i1 = np.array([self.x[i+1] for i in cdf_idx]) + p_i1 = np.array([self.p[i+1] for i in cdf_idx]) + # compute slope between entries + m = (p_i1 - p_i) / (x_i1 - x_i) + # set values for zero slope + zero = m == 0.0 + m[zero] = x_i[zero] + (xi[zero] - c_i[zero]) / p_i[zero] + # set values for non-zero slope + non_zero = not zero + quad = np.pow(p_i[non_zero]**2) + 2. * m[non_zero] * (xi[non_zero] - c_i[non_zero]) + quad[quad < 0.0] = 0.0 + m[non_zero] = x_i[non_zero] + (np.sqrt(quad) - p_i) / m[non_zero] + return m + def to_xml_element(self, element_name): """Return XML representation of the tabular distribution @@ -890,6 +1010,9 @@ class Legendre(Univariate): def coefficients(self, coefficients): self._coefficients = np.asarray(coefficients) + def sample(self, n_samples=1, seed=None): + raise NotImplementedError + def to_xml_element(self, element_name): raise NotImplementedError From e856c6a27065eb9b2b64dd480f1200020937e276 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Tue, 5 Apr 2022 13:24:18 -0500 Subject: [PATCH 004/119] Correction to maxwell dist sampling --- 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 ea8c9f943..72a5568aa 100644 --- a/openmc/stats/univariate.py +++ b/openmc/stats/univariate.py @@ -452,13 +452,13 @@ class Maxwell(Univariate): def sample(self, n_samples=1, seed=None): np.random.seed(seed) - self.sample_maxwell(self.theta, n_samples) + return self.sample_maxwell(self.theta, n_samples) @staticmethod def sample_maxwell(t, n_samples): r1, r2, r3 = np.random.rand(3, n_samples) c = np.power(np.cos(0.5 * np.pi * r3), 2) - return t * (np.log(r1) + np.log(r2) * c) + return -t * (np.log(r1) + np.log(r2) * c) def to_xml_element(self, element_name): """Return XML representation of the Maxwellian distribution From 136ff45cc56a4a552eea93b35aeaf792e9fad0e7 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Tue, 5 Apr 2022 13:52:50 -0500 Subject: [PATCH 005/119] Adding docstrings. Corrections to Tabular sampling --- openmc/stats/univariate.py | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/openmc/stats/univariate.py b/openmc/stats/univariate.py index 72a5568aa..3d99f8b8c 100644 --- a/openmc/stats/univariate.py +++ b/openmc/stats/univariate.py @@ -61,7 +61,21 @@ class Univariate(EqualityMixin, ABC): return Mixture.from_xml_element(elem) @abstractmethod - def sample(p, seed=None): + def sample(n_samples=1, seed=None): + """Sample the univariate distribution + + Parameters + ---------- + n_samples : int + Number of sampled values to generate + seed : int or None + Initial random number seed. + + Returns + ------- + numpy.ndarray + A 1-D array of sampled values + """ pass @@ -867,15 +881,17 @@ class Tabular(Univariate): self._interpolation = interpolation def cdf(self): - if self.interpolation not in ('histogram', 'linear-linear'): + if not self.interpolation in ('histogram', 'linear-linear'): raise NotImplementedError('Can only generate CDFs for tabular ' 'distributions using histogram or ' 'linear-linear interpolation') - c = np.zeros_like((len(self.x),)) + c = np.zeros_like(self.x) + x = np.asarray(self.x) + p = np.asarray(self.p) if self.interpolation == 'histogram': - c[1:] = self.p * np.diff(self.x) + c[1:] = p * np.diff(x) elif self.interpolation == 'linear-linear': - c[1:] = 0.5 * np.diff(self.p) * np.diff(self.x) + c[1:] = 0.5 * (p[0:-1] + p[1:]) * np.diff(x) return np.cumsum(c) def sample(self, n_samples=1, seed=None): @@ -886,7 +902,7 @@ class Tabular(Univariate): # get CDF bins that are above the # sampled values c_i = np.full(n_samples, cdf[0]) - cdf_idx = np.zeros_like(n_samples) + cdf_idx = np.zeros((n_samples,), dtype=int) for i, val in enumerate(cdf): mask = xi > val c_i[mask] = val @@ -903,7 +919,7 @@ class Tabular(Univariate): pos_mask = p_i > 0.0 p_i[pos_mask] = x_i[pos_mask] + (xi[pos_mask] - c_i[pos_mask]) \ / p_i[pos_mask] - neg_mask = not pos_mask + neg_mask = np.invert(pos_mask) p_i[neg_mask] = x_i[neg_mask] return p_i elif self.interpolation == 'linear-linear': @@ -917,8 +933,8 @@ class Tabular(Univariate): zero = m == 0.0 m[zero] = x_i[zero] + (xi[zero] - c_i[zero]) / p_i[zero] # set values for non-zero slope - non_zero = not zero - quad = np.pow(p_i[non_zero]**2) + 2. * m[non_zero] * (xi[non_zero] - c_i[non_zero]) + non_zero = np.invert(zero) + quad = np.power(p_i[non_zero], 2) + 2. * m[non_zero] * (xi[non_zero] - c_i[non_zero]) quad[quad < 0.0] = 0.0 m[non_zero] = x_i[non_zero] + (np.sqrt(quad) - p_i) / m[non_zero] return m From 17be0257a0ec05994ff6d2a2fea8edcd15b5dfc7 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Tue, 5 Apr 2022 14:05:35 -0500 Subject: [PATCH 006/119] Correction to histogram cdf method --- openmc/stats/univariate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/stats/univariate.py b/openmc/stats/univariate.py index 3d99f8b8c..7fc479e63 100644 --- a/openmc/stats/univariate.py +++ b/openmc/stats/univariate.py @@ -889,7 +889,7 @@ class Tabular(Univariate): x = np.asarray(self.x) p = np.asarray(self.p) if self.interpolation == 'histogram': - c[1:] = p * np.diff(x) + c[1:] = p[:-1] * np.diff(x) elif self.interpolation == 'linear-linear': c[1:] = 0.5 * (p[0:-1] + p[1:]) * np.diff(x) return np.cumsum(c) From 8070ccaf52abb93eca2e3ee99784284d5b730a26 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Tue, 5 Apr 2022 15:32:38 -0500 Subject: [PATCH 007/119] Adding sampling for Mixture. Improving performance of Discrete sampling --- openmc/stats/univariate.py | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/openmc/stats/univariate.py b/openmc/stats/univariate.py index 7fc479e63..0e6b4ae61 100644 --- a/openmc/stats/univariate.py +++ b/openmc/stats/univariate.py @@ -133,20 +133,19 @@ class Discrete(Univariate): cv.check_greater_than('discrete probability', pk, 0.0, True) self._p = p + def cdf(self): + return np.insert(np.cumsum(self.p), 0, 0.0) + def sample(self, n_samples=1, seed=None): np.random.seed(seed) if len(self.x) == 1: return np.full((n_samples), self.x[0]) - out = np.zeros((n_samples,)) - for i, xi in enumerate(np.random.rand(n_samples)): - c = 0.0 - for j, prob in enumerate(self.p): - c += prob - if (xi < c): - out[i] = self.x[j] - break + xi = np.random.rand(n_samples) + out = np.zeros_like(xi) + for i, c in enumerate(self.cdf()[:-1]): + out[xi >= c] = self.x[i] return out def normalize(self): @@ -1086,6 +1085,27 @@ class Mixture(Univariate): Iterable, Univariate) self._distribution = distribution + def cdf(self): + return np.insert(np.cumsum(self.probability), 0, 0.0) + + def sample(self, n_samples=1, seed=None): + np.random.seed(seed) + xi = np.random.rand(n_samples) + idx = np.zeros_like(xi, dtype=int) + for i, c in enumerate(self.cdf()[:-1]): + idx[xi >= c] = i + + out = np.zeros_like(xi) + for i in np.unique(idx): + n_dist_samples = np.count_nonzero(idx == i) + samples = self.distribution[i].sample(n_dist_samples) + out[idx == i] = samples + return out + + def normalize(self): + norm = sum(self.probability) + self.probability = [val / norm for val in self.probability] + def to_xml_element(self, element_name): """Return XML representation of the mixture distribution From 2f22474aea252d2bdff2fecd5ef7e17aa31bba8f Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Wed, 6 Apr 2022 10:32:39 -0500 Subject: [PATCH 008/119] Adding simple test for normal distribution --- tests/unit_tests/test_stats.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/unit_tests/test_stats.py b/tests/unit_tests/test_stats.py index 51a561bd3..7bf67c1fa 100644 --- a/tests/unit_tests/test_stats.py +++ b/tests/unit_tests/test_stats.py @@ -65,6 +65,7 @@ def test_uniform(): assert t.p == [1/(b-a), 1/(b-a)] assert t.interpolation == 'histogram' + def test_powerlaw(): a, b, n = 10.0, 20.0, 2.0 d = openmc.stats.PowerLaw(a, b, n) @@ -76,6 +77,7 @@ def test_powerlaw(): assert d.n == n assert len(d) == 3 + def test_maxwell(): theta = 1.2895e6 d = openmc.stats.Maxwell(theta) @@ -264,6 +266,18 @@ def test_normal(): assert d.std_dev == pytest.approx(std_dev) assert len(d) == 2 + # sample normal distribution + n_samples = 10000 + samples = d.sample(n_samples, seed=100) + samples = np.abs(samples - mean) + within_1_sigma = np.count_nonzero(samples < std_dev) + assert within_1_sigma / n_samples >= 0.68 + within_2_sigma = np.count_nonzero(samples < 2*std_dev) + assert within_2_sigma / n_samples >= 0.95 + within_3_sigma = np.count_nonzero(samples < 3*std_dev) + assert within_3_sigma / n_samples >= 0.99 + + def test_muir(): mean = 10.0 mass = 5.0 From 2c74dcf336f135a11649391616bb9741aa139ee3 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Wed, 6 Apr 2022 10:35:46 -0500 Subject: [PATCH 009/119] Adding similar test for Muir distribution --- openmc/stats/univariate.py | 7 +++++-- tests/unit_tests/test_stats.py | 11 +++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/openmc/stats/univariate.py b/openmc/stats/univariate.py index 0e6b4ae61..4f2fbf66c 100644 --- a/openmc/stats/univariate.py +++ b/openmc/stats/univariate.py @@ -764,11 +764,14 @@ class Muir(Univariate): cv.check_greater_than('Muir kt', kt, 0.0) self._kt = kt + @property + def std_dev(self): + return np.sqrt(4.*self.e0*self.kt/self.m_rat) + def sample(self, n_samples=1, seed=None): # https://permalink.lanl.gov/object/tr?what=info:lanl-repo/lareport/LA-05411-MS np.random.seed(seed) - sigma = np.sqrt(4.*self.e0*self.kt/self.m_rat) - return np.random.normal(self.e0, sigma, n_samples) + return np.random.normal(self.e0, self.std_dev, n_samples) def to_xml_element(self, element_name): """Return XML representation of the Watt distribution diff --git a/tests/unit_tests/test_stats.py b/tests/unit_tests/test_stats.py index 7bf67c1fa..532936e42 100644 --- a/tests/unit_tests/test_stats.py +++ b/tests/unit_tests/test_stats.py @@ -292,3 +292,14 @@ def test_muir(): assert d.m_rat == pytest.approx(mass) assert d.kt == pytest.approx(temp) assert len(d) == 3 + + # sample normal distribution + n_samples = 10000 + samples = d.sample(n_samples, seed=100) + samples = np.abs(samples - mean) + within_1_sigma = np.count_nonzero(samples < d.std_dev) + assert within_1_sigma / n_samples >= 0.68 + within_2_sigma = np.count_nonzero(samples < 2*d.std_dev) + assert within_2_sigma / n_samples >= 0.95 + within_3_sigma = np.count_nonzero(samples < 3*d.std_dev) + assert within_3_sigma / n_samples >= 0.99 From 12b8a0802f7579ca1da24a7d2a0ba6bebdad6b3f Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Thu, 2 Jun 2022 23:42:06 -0500 Subject: [PATCH 010/119] Updating masks and adding some comments for clarity --- openmc/stats/univariate.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/openmc/stats/univariate.py b/openmc/stats/univariate.py index 4f2fbf66c..120dc62b6 100644 --- a/openmc/stats/univariate.py +++ b/openmc/stats/univariate.py @@ -897,6 +897,10 @@ class Tabular(Univariate): return np.cumsum(c) def sample(self, n_samples=1, seed=None): + if not self.interpolation in ('histogram', 'linear-linear'): + raise NotImplementedError('Can only sample tabular distributions ' + 'using histogram or ' + 'linear-linear interpolation') np.random.seed(seed) xi = np.random.rand(n_samples) cdf = self.cdf() @@ -905,7 +909,7 @@ class Tabular(Univariate): # sampled values c_i = np.full(n_samples, cdf[0]) cdf_idx = np.zeros((n_samples,), dtype=int) - for i, val in enumerate(cdf): + for i, val in enumerate(cdf[:-1]): mask = xi > val c_i[mask] = val cdf_idx[mask] = i @@ -916,13 +920,17 @@ class Tabular(Univariate): x_i = np.array([self.x[i] for i in cdf_idx]) p_i = np.array([self.p[i] for i in cdf_idx]) + # TODO: check that probability doesn't exceed the last value + if self.interpolation == 'histogram': - # mask where probability + # mask where probability is greater than zero pos_mask = p_i > 0.0 + # probabilities greater than zero are set proportional to the + # position of the random numebers in relation to the cdf value p_i[pos_mask] = x_i[pos_mask] + (xi[pos_mask] - c_i[pos_mask]) \ / p_i[pos_mask] - neg_mask = np.invert(pos_mask) - p_i[neg_mask] = x_i[neg_mask] + # probabilities smaller than zero are set to the random number value + p_i[~pos_mask] = x_i[~pos_mask] return p_i elif self.interpolation == 'linear-linear': # get variable and probability values for the @@ -935,10 +943,10 @@ class Tabular(Univariate): zero = m == 0.0 m[zero] = x_i[zero] + (xi[zero] - c_i[zero]) / p_i[zero] # set values for non-zero slope - non_zero = np.invert(zero) + non_zero = ~zero quad = np.power(p_i[non_zero], 2) + 2. * m[non_zero] * (xi[non_zero] - c_i[non_zero]) quad[quad < 0.0] = 0.0 - m[non_zero] = x_i[non_zero] + (np.sqrt(quad) - p_i) / m[non_zero] + m[non_zero] = x_i[non_zero] + (np.sqrt(quad) - p_i[non_zero]) / m[non_zero] return m def to_xml_element(self, element_name): From 94c91cc6593fa6f61816e06b169dd6c82995bb19 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Thu, 2 Jun 2022 23:42:24 -0500 Subject: [PATCH 011/119] Adding more mean value tests for sampling distributions --- tests/unit_tests/test_stats.py | 84 +++++++++++++++++++++++++++++++++- 1 file changed, 83 insertions(+), 1 deletion(-) diff --git a/tests/unit_tests/test_stats.py b/tests/unit_tests/test_stats.py index 532936e42..a3b5cfafb 100644 --- a/tests/unit_tests/test_stats.py +++ b/tests/unit_tests/test_stats.py @@ -253,6 +253,88 @@ def test_point(): d = openmc.stats.Point.from_xml_element(elem) assert d.xyz == pytest.approx(p) + +def test_discrete(): + + vals = np.array([1.0, 2.0, 3.0]) + probs = np.array([0.1, 0.7, 0.2]) + + exp_mean = (vals * probs).sum() + + d = openmc.stats.Discrete(vals, probs) + + # sample discrete distribution + n_samples = 1_000_000 + samples = d.sample(n_samples, seed=100) + # check that the mean of the samples is close to the true mean + assert samples.mean() == pytest.approx(exp_mean, rel=1e-02) + + +def test_uniform(): + + lower = 1.1 + upper = 23.3 + + exp_mean = 0.5 * (lower + upper) + + d = openmc.stats.Uniform(lower, upper) + + # sample the uniform distribution + n_samples = 1_000_000 + samples = d.sample(n_samples, seed=100) + assert samples.mean() == pytest.approx(exp_mean, rel=1e-02) + + +def test_power_law(): + + lower = 0.0 + upper = 1.0 + exponent = 2.0 + + d = openmc.stats.PowerLaw(lower, upper, exponent) + + exp_mean = (exponent + 1) / (exponent + 2) + + # sample power law distribution + n_samples = 1_000_000 + samples = d.sample(n_samples, seed=100) + assert samples.mean() == pytest.approx(exp_mean, rel=1e-02) + + +def test_maxwell(): + theta = 1000 + + exp_mean = 0 + + d = openmc.stats.Maxwell(theta) + + exp_mean = 3/2 * theta + + # sample maxwell distribution + n_samples = 1_000_000 + samples = d.sample(n_samples, seed=100) + assert samples.mean() == pytest.approx(exp_mean, rel=1e-02) + +def test_watt(): + + a = 10 + b = 20 + + d = openmc.stats.Watt(a, b) + + # mean value form adapted from + # "Prompt-fission-neutron average energy for 238U(n, f ) from + # threshold to 200 MeV" Ethvignot et. al. + # https://doi.org/10.1016/j.physletb.2003.09.048 + exp_mean = 3/2 * a + a**2 * b / 4 + + # sample Watt distribution + n_samples = 100_000 + samples = d.sample(n_samples, seed=100) + assert samples.mean() == pytest.approx(exp_mean, rel=1e-02) + + + def test_normal(): mean = 10.0 std_dev = 2.0 @@ -293,7 +375,7 @@ def test_muir(): assert d.kt == pytest.approx(temp) assert len(d) == 3 - # sample normal distribution + # sample muir distribution n_samples = 10000 samples = d.sample(n_samples, seed=100) samples = np.abs(samples - mean) From e030b748360c833f63fe38a760f89b3ce03e396e Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Wed, 8 Jun 2022 17:28:33 +0100 Subject: [PATCH 012/119] add get_activity --- openmc/data/data.py | 3565 +++++++++++++++++++++++++++++++++++++++++++ openmc/material.py | 16 + 2 files changed, 3581 insertions(+) diff --git a/openmc/data/data.py b/openmc/data/data.py index a1d0ee1dc..48a98dedd 100644 --- a/openmc/data/data.py +++ b/openmc/data/data.py @@ -177,6 +177,3571 @@ ATOMIC_SYMBOL = {0: 'n', 1: 'H', 2: 'He', 3: 'Li', 4: 'Be', 5: 'B', 6: 'C', 118: 'Og'} ATOMIC_NUMBER = {value: key for key, value in ATOMIC_SYMBOL.items()} +# Half life values are from ENDF/B VII.1 and have units of seconds +HALF_LIFE = { + "H3": 388789600.0, + "H4": 9.90652e-23, + "H5": 7.99473e-23, + "H6": 2.84812e-22, + "H7": 2.3e-23, + "He5": 7.595e-22, + "He6": 0.8067, + "He7": 3.038e-21, + "He8": 0.1191, + "He9": 7e-21, + "He10": 1.519e-21, + "Li4": 7.55721e-23, + "Li5": 3.06868e-22, + "Li8": 0.838, + "Li9": 0.1783, + "Li10": 2e-21, + "Li11": 0.00859, + "Li12": 1e-08, + "Be5": 1e-09, + "Be6": 4.95326e-21, + "Be8": 8.18132e-17, + "Be10": 47652000000000.0, + "Be11": 13.81, + "Be12": 0.0213, + "Be13": 2.7e-21, + "Be14": 0.00435, + "Be15": 2e-07, + "Be16": 2e-07, + "B6": 1e-09, + "B7": 3.255e-22, + "B8": 0.77, + "B9": 8.43888e-19, + "B12": 0.0202, + "B13": 0.01736, + "B14": 0.0125, + "B15": 0.00993, + "B16": 1.9e-10, + "B17": 0.00508, + "B18": 2.6e-08, + "B19": 0.00292, + "C8": 1.9813e-21, + "C9": 0.1265, + "C10": 19.29, + "C11": 1223.1, + "C14": 179878000000.0, + "C15": 2.449, + "C16": 0.747, + "C17": 0.193, + "C18": 0.092, + "C19": 0.049, + "C20": 0.0145, + "C21": 3e-08, + "C22": 0.0062, + "N10": 2e-22, + "N11": 3.12742e-22, + "N12": 0.011, + "N13": 597.9, + "N16": 7.13, + "N17": 4.171, + "N18": 0.624, + "N19": 0.271, + "N20": 0.13, + "N21": 0.085, + "N22": 0.024, + "N23": 0.0145, + "N24": 5.2e-08, + "N25": 2.6e-07, + "O12": 1.13925e-21, + "O13": 0.00858, + "O14": 70.606, + "O15": 122.24, + "O19": 26.88, + "O20": 13.51, + "O21": 3.42, + "O22": 2.25, + "O23": 0.0905, + "O24": 0.065, + "O25": 5e-08, + "O26": 4e-08, + "O27": 2.6e-07, + "O28": 1e-07, + "F14": 5.0007e-22, + "F15": 4.557e-22, + "F16": 1.13925e-20, + "F17": 64.49, + "F18": 6586.2, + "F20": 11.163, + "F21": 4.158, + "F22": 4.23, + "F23": 2.23, + "F24": 0.39, + "F25": 0.05, + "F26": 0.0096, + "F27": 0.005, + "F28": 4e-08, + "F29": 0.0025, + "F30": 2.6e-07, + "F31": 2.5e-07, + "Ne16": 3.73524e-21, + "Ne17": 0.1092, + "Ne18": 1.672, + "Ne19": 17.22, + "Ne23": 37.24, + "Ne24": 202.8, + "Ne25": 0.602, + "Ne26": 0.197, + "Ne27": 0.032, + "Ne28": 0.0189, + "Ne29": 0.0148, + "Ne30": 0.0073, + "Ne31": 0.0034, + "Ne32": 0.0035, + "Ne33": 1.8e-07, + "Ne34": 6e-08, + "Na18": 1.3e-21, + "Na19": 4e-08, + "Na20": 0.4479, + "Na21": 22.49, + "Na22": 82134970.0, + "Na24": 53989.2, + "Na24_m1": 0.02018, + "Na25": 59.1, + "Na26": 1.077, + "Na27": 0.301, + "Na28": 0.0305, + "Na29": 0.0449, + "Na30": 0.048, + "Na31": 0.017, + "Na32": 0.0132, + "Na33": 0.008, + "Na34": 0.0055, + "Na35": 0.0015, + "Na36": 1.8e-07, + "Na37": 6e-08, + "Mg19": 4e-12, + "Mg20": 0.0908, + "Mg21": 0.122, + "Mg22": 3.8755, + "Mg23": 11.317, + "Mg27": 567.48, + "Mg28": 75294.0, + "Mg29": 1.3, + "Mg30": 0.335, + "Mg31": 0.232, + "Mg32": 0.086, + "Mg33": 0.0905, + "Mg34": 0.02, + "Mg35": 0.07, + "Mg36": 0.0039, + "Mg37": 2.6e-07, + "Mg38": 2.6e-07, + "Mg39": 1.8e-07, + "Mg40": 1.7e-07, + "Al21": 3.5e-08, + "Al22": 0.059, + "Al23": 0.47, + "Al24": 2.053, + "Al24_m1": 0.13, + "Al25": 7.183, + "Al26": 22626800000000.0, + "Al26_m1": 6.3452, + "Al28": 134.484, + "Al29": 393.6, + "Al30": 3.62, + "Al31": 0.644, + "Al32": 0.033, + "Al33": 0.0417, + "Al34": 0.042, + "Al35": 0.0386, + "Al36": 0.09, + "Al37": 0.0107, + "Al38": 0.0076, + "Al39": 7.6e-06, + "Al40": 2.6e-07, + "Al41": 2.6e-07, + "Al42": 1.7e-07, + "Si22": 0.029, + "Si23": 0.0423, + "Si24": 0.14, + "Si25": 0.22, + "Si26": 2.234, + "Si27": 4.16, + "Si31": 9438.0, + "Si32": 4828310000.0, + "Si33": 6.11, + "Si34": 2.77, + "Si35": 0.78, + "Si36": 0.45, + "Si37": 0.09, + "Si38": 1e-06, + "Si39": 0.0475, + "Si40": 0.033, + "Si41": 0.02, + "Si42": 0.0125, + "Si43": 6e-08, + "Si44": 3.6e-07, + "P24": 0.0074, + "P25": 3e-08, + "P26": 0.0437, + "P27": 0.26, + "P28": 0.2703, + "P29": 4.142, + "P30": 149.88, + "P32": 1232323.0, + "P33": 2189376.0, + "P34": 12.43, + "P35": 47.3, + "P36": 5.6, + "P37": 2.31, + "P38": 0.64, + "P39": 0.28, + "P40": 0.125, + "P41": 0.1, + "P42": 0.0485, + "P43": 0.0365, + "P44": 0.0185, + "P45": 2e-07, + "P46": 2e-07, + "S26": 0.01, + "S27": 0.0155, + "S28": 0.125, + "S29": 0.187, + "S30": 1.178, + "S31": 2.572, + "S35": 7560864.0, + "S37": 303.0, + "S38": 10218.0, + "S39": 11.5, + "S40": 8.8, + "S41": 1.99, + "S42": 1.013, + "S43": 0.28, + "S44": 0.1, + "S45": 0.068, + "S46": 0.05, + "S48": 2e-07, + "S49": 2e-07, + "Cl28": 0.0017, + "Cl29": 2e-08, + "Cl30": 3e-08, + "Cl31": 0.15, + "Cl32": 0.298, + "Cl33": 2.511, + "Cl34": 1.5264, + "Cl34_m1": 1920.0, + "Cl36": 9498840000000.0, + "Cl38": 2233.8, + "Cl38_m1": 0.715, + "Cl39": 3336.0, + "Cl40": 81.0, + "Cl41": 38.4, + "Cl42": 6.8, + "Cl43": 3.13, + "Cl44": 0.56, + "Cl45": 0.413, + "Cl46": 0.232, + "Cl47": 0.101, + "Cl48": 2e-07, + "Cl49": 1.7e-07, + "Cl50": 0.02, + "Cl51": 2e-07, + "Ar30": 2e-08, + "Ar31": 0.0151, + "Ar32": 0.098, + "Ar33": 0.173, + "Ar34": 0.8445, + "Ar35": 1.775, + "Ar37": 3027456.0, + "Ar39": 8488990000.0, + "Ar41": 6576.6, + "Ar42": 1038250000.0, + "Ar43": 322.2, + "Ar44": 712.2, + "Ar45": 21.48, + "Ar46": 8.4, + "Ar47": 1.23, + "Ar48": 0.475, + "Ar49": 0.17, + "Ar50": 0.085, + "Ar51": 2e-07, + "Ar52": 0.01, + "Ar53": 0.003, + "K32": 0.0033, + "K33": 2.5e-08, + "K34": 2.5e-08, + "K35": 0.178, + "K36": 0.342, + "K37": 1.226, + "K38": 458.16, + "K38_m1": 0.924, + "K40": 3.93839e16, + "K42": 44496.0, + "K43": 80280.0, + "K44": 1327.8, + "K45": 1068.6, + "K46": 105.0, + "K47": 17.5, + "K48": 6.8, + "K49": 1.26, + "K50": 0.472, + "K51": 0.365, + "K52": 0.105, + "K53": 0.03, + "K54": 0.01, + "K55": 0.003, + "Ca34": 3.5e-08, + "Ca35": 0.0257, + "Ca36": 0.102, + "Ca37": 0.1811, + "Ca38": 0.44, + "Ca39": 0.8596, + "Ca41": 3218880000000.0, + "Ca45": 14049500.0, + "Ca47": 391910.4, + "Ca48": 7.25824e26, + "Ca49": 523.08, + "Ca50": 13.9, + "Ca51": 10.0, + "Ca52": 4.6, + "Ca53": 0.09, + "Ca54": 0.086, + "Ca55": 0.022, + "Ca56": 0.01, + "Ca57": 0.005, + "Sc36": 0.0088, + "Sc37": 0.056, + "Sc38": 0.0423, + "Sc39": 3e-07, + "Sc40": 0.1823, + "Sc41": 0.5963, + "Sc42": 0.6808, + "Sc42_m1": 62.0, + "Sc43": 14007.6, + "Sc44": 14292.0, + "Sc44_m1": 210996.0, + "Sc45_m1": 0.318, + "Sc46": 7239456.0, + "Sc46_m1": 18.75, + "Sc47": 289370.9, + "Sc48": 157212.0, + "Sc49": 3430.8, + "Sc50": 102.5, + "Sc50_m1": 0.35, + "Sc51": 12.4, + "Sc52": 8.2, + "Sc53": 3.0, + "Sc54": 0.36, + "Sc55": 0.105, + "Sc56": 0.06, + "Sc57": 0.013, + "Sc58": 0.012, + "Sc59": 0.01, + "Sc60": 0.003, + "Ti38": 1.2e-07, + "Ti39": 0.032, + "Ti40": 0.0533, + "Ti41": 0.0804, + "Ti42": 0.199, + "Ti43": 0.509, + "Ti44": 1893460000.0, + "Ti45": 11088.0, + "Ti51": 345.6, + "Ti52": 102.0, + "Ti53": 32.7, + "Ti54": 1.5, + "Ti55": 1.3, + "Ti56": 0.2, + "Ti57": 0.06, + "Ti58": 0.059, + "Ti59": 0.03, + "Ti60": 0.022, + "Ti61": 3e-07, + "Ti62": 0.01, + "Ti63": 0.003, + "V40": 0.0077, + "V41": 0.0244, + "V42": 5.5e-08, + "V43": 0.8, + "V44": 0.111, + "V44_m1": 0.15, + "V45": 0.547, + "V46": 0.4225, + "V46_m1": 0.00102, + "V47": 1956.0, + "V48": 1380110.0, + "V49": 28512000.0, + "V50": 4.41806e24, + "V52": 224.58, + "V53": 92.58, + "V54": 49.8, + "V55": 6.54, + "V56": 0.216, + "V57": 0.35, + "V58": 0.185, + "V59": 0.075, + "V60": 0.068, + "V61": 0.047, + "V62": 1.5e-07, + "V63": 0.017, + "V64": 0.019, + "V65": 0.01, + "Cr42": 0.014, + "Cr43": 0.0216, + "Cr44": 0.0535, + "Cr45": 0.0609, + "Cr46": 0.26, + "Cr47": 0.5, + "Cr48": 77616.0, + "Cr49": 2538.0, + "Cr51": 2393366.0, + "Cr55": 209.82, + "Cr56": 356.4, + "Cr57": 21.1, + "Cr58": 7.0, + "Cr59": 0.46, + "Cr60": 0.49, + "Cr61": 0.27, + "Cr62": 0.19, + "Cr63": 0.129, + "Cr64": 0.043, + "Cr65": 0.027, + "Cr66": 0.01, + "Cr67": 0.05, + "Mn44": 1.05e-07, + "Mn45": 7e-08, + "Mn46": 0.0345, + "Mn47": 0.1, + "Mn48": 0.1581, + "Mn49": 0.382, + "Mn50": 0.28319, + "Mn50_m1": 105.0, + "Mn51": 2772.0, + "Mn52": 483062.4, + "Mn52_m1": 1266.0, + "Mn53": 116763000000000.0, + "Mn54": 26961120.0, + "Mn56": 9284.04, + "Mn57": 85.4, + "Mn58": 3.0, + "Mn58_m1": 65.4, + "Mn59": 4.59, + "Mn60": 51.0, + "Mn60_m1": 1.77, + "Mn61": 0.67, + "Mn62": 0.671, + "Mn62_m1": 0.092, + "Mn63": 0.29, + "Mn64": 0.09, + "Mn65": 0.092, + "Mn66": 0.064, + "Mn67": 0.047, + "Mn68": 0.028, + "Mn69": 0.014, + "Fe45": 0.00203, + "Fe46": 0.013, + "Fe47": 0.0219, + "Fe48": 0.044, + "Fe49": 0.0647, + "Fe50": 0.155, + "Fe51": 0.305, + "Fe52": 29790.0, + "Fe52_m1": 45.9, + "Fe53": 510.6, + "Fe53_m1": 152.4, + "Fe55": 86594050.0, + "Fe59": 3844368.0, + "Fe60": 47336400000000.0, + "Fe61": 358.8, + "Fe62": 68.0, + "Fe63": 6.1, + "Fe64": 2.0, + "Fe65": 0.81, + "Fe65_m1": 1.12, + "Fe66": 0.44, + "Fe67": 0.416, + "Fe68": 0.187, + "Fe69": 0.109, + "Fe70": 0.094, + "Fe71": 0.028, + "Fe72": 1.5e-07, + "Co49": 3.5e-08, + "Co50": 0.044, + "Co51": 2e-07, + "Co52": 0.115, + "Co53": 0.24, + "Co53_m1": 0.247, + "Co54": 0.19328, + "Co54_m1": 88.8, + "Co55": 63108.0, + "Co56": 6672931.0, + "Co57": 23478340.0, + "Co58": 6122304.0, + "Co58_m1": 32760.0, + "Co60": 166344200.0, + "Co60_m1": 628.02, + "Co61": 5940.0, + "Co62": 90.0, + "Co62_m1": 834.6, + "Co63": 27.4, + "Co64": 0.3, + "Co65": 1.16, + "Co66": 0.2, + "Co67": 0.425, + "Co68": 0.199, + "Co68_m1": 1.6, + "Co69": 0.22, + "Co70": 0.119, + "Co70_m1": 0.5, + "Co71": 0.079, + "Co72": 0.0599, + "Co73": 0.041, + "Co74": 0.03, + "Co75": 0.034, + "Ni48": 0.0021, + "Ni49": 0.0075, + "Ni50": 0.012, + "Ni51": 2e-07, + "Ni52": 0.038, + "Ni53": 0.045, + "Ni54": 0.104, + "Ni55": 0.2047, + "Ni56": 524880.0, + "Ni57": 128160.0, + "Ni59": 2398380000000.0, + "Ni63": 3193630000.0, + "Ni65": 9061.884, + "Ni66": 196560.0, + "Ni67": 21.0, + "Ni68": 29.0, + "Ni69": 11.4, + "Ni69_m1": 3.5, + "Ni70": 6.0, + "Ni71": 2.56, + "Ni72": 1.57, + "Ni73": 0.84, + "Ni74": 0.68, + "Ni75": 0.6, + "Ni76": 0.238, + "Ni77": 0.061, + "Ni78": 0.11, + "Cu52": 0.0069, + "Cu53": 3e-07, + "Cu54": 7.5e-08, + "Cu55": 0.04, + "Cu56": 0.094, + "Cu57": 0.1963, + "Cu58": 3.204, + "Cu59": 81.5, + "Cu60": 1422.0, + "Cu61": 11998.8, + "Cu62": 580.38, + "Cu64": 45723.6, + "Cu66": 307.2, + "Cu67": 222588.0, + "Cu68": 31.1, + "Cu68_m1": 225.0, + "Cu69": 171.0, + "Cu70": 44.5, + "Cu70_m1": 33.0, + "Cu70_m2": 6.6, + "Cu71": 19.5, + "Cu72": 6.63, + "Cu73": 4.2, + "Cu74": 1.75, + "Cu75": 1.224, + "Cu76": 0.653, + "Cu76_m1": 1.27, + "Cu77": 0.469, + "Cu78": 0.335, + "Cu79": 0.188, + "Cu80": 0.17, + "Cu81": 0.028, + "Zn54": 0.0037, + "Zn55": 0.02, + "Zn56": 5e-07, + "Zn57": 0.038, + "Zn58": 0.084, + "Zn59": 0.182, + "Zn60": 142.8, + "Zn61": 89.1, + "Zn61_m1": 0.43, + "Zn61_m2": 0.14, + "Zn62": 33336.0, + "Zn63": 2308.2, + "Zn65": 21075550.0, + "Zn69": 3384.0, + "Zn69_m1": 49536.0, + "Zn71": 147.0, + "Zn71_m1": 14256.0, + "Zn72": 167400.0, + "Zn73": 23.5, + "Zn73_m1": 5.8, + "Zn73_m2": 0.013, + "Zn74": 95.6, + "Zn75": 10.2, + "Zn76": 5.7, + "Zn77": 2.08, + "Zn77_m1": 1.05, + "Zn78": 1.47, + "Zn79": 0.995, + "Zn80": 0.54, + "Zn81": 0.32, + "Zn82": 0.052, + "Zn83": 0.043, + "Ga56": 0.0059, + "Ga57": 0.0123, + "Ga58": 0.0152, + "Ga59": 0.0418, + "Ga60": 0.07, + "Ga61": 0.168, + "Ga62": 0.11612, + "Ga63": 32.4, + "Ga64": 157.62, + "Ga65": 912.0, + "Ga66": 34164.0, + "Ga67": 281810.9, + "Ga68": 4062.6, + "Ga70": 1268.4, + "Ga72": 50760.0, + "Ga72_m1": 0.03968, + "Ga73": 17496.0, + "Ga74": 487.2, + "Ga74_m1": 9.5, + "Ga75": 126.0, + "Ga76": 32.6, + "Ga77": 13.2, + "Ga78": 5.09, + "Ga79": 2.847, + "Ga80": 1.676, + "Ga81": 1.217, + "Ga82": 0.599, + "Ga83": 0.3081, + "Ga84": 0.085, + "Ga85": 0.048, + "Ga86": 0.029, + "Ge58": 0.0152, + "Ge59": 0.0418, + "Ge60": 0.03, + "Ge61": 0.039, + "Ge62": 1.5e-07, + "Ge63": 0.142, + "Ge64": 63.7, + "Ge65": 30.9, + "Ge66": 8136.0, + "Ge67": 1134.0, + "Ge68": 23410080.0, + "Ge69": 140580.0, + "Ge71": 987552.0, + "Ge71_m1": 0.02041, + "Ge73_m1": 0.499, + "Ge75": 4966.8, + "Ge75_m1": 47.7, + "Ge77": 40680.0, + "Ge77_m1": 52.9, + "Ge78": 5280.0, + "Ge79": 18.98, + "Ge79_m1": 39.0, + "Ge80": 29.5, + "Ge81": 7.6, + "Ge81_m1": 7.6, + "Ge82": 4.56, + "Ge83": 1.85, + "Ge84": 0.954, + "Ge85": 0.535, + "Ge86": 0.095, + "Ge87": 0.14, + "Ge88": 0.066, + "Ge89": 0.039, + "As60": 0.0083, + "As61": 0.0166, + "As62": 0.0259, + "As63": 0.0921, + "As64": 0.036, + "As65": 0.128, + "As66": 0.09579, + "As67": 42.5, + "As68": 151.6, + "As69": 913.8, + "As70": 3156.0, + "As71": 235080.0, + "As72": 93600.0, + "As73": 6937920.0, + "As74": 1535328.0, + "As75_m1": 0.01762, + "As76": 94464.0, + "As77": 139788.0, + "As78": 5442.0, + "As79": 540.6, + "As80": 15.2, + "As81": 33.3, + "As82": 19.1, + "As82_m1": 13.6, + "As83": 13.4, + "As84": 4.2, + "As85": 2.021, + "As86": 0.945, + "As87": 0.56, + "As88": 0.112, + "As89": 0.059, + "As90": 0.043, + "As91": 0.044, + "As92": 0.027, + "Se65": 0.05, + "Se66": 0.033, + "Se67": 0.136, + "Se68": 35.5, + "Se69": 27.4, + "Se70": 2466.0, + "Se71": 284.4, + "Se72": 725760.0, + "Se73": 25740.0, + "Se73_m1": 2388.0, + "Se75": 10349860.0, + "Se77_m1": 17.36, + "Se79": 9309490000000.0, + "Se79_m1": 235.2, + "Se81": 1107.0, + "Se81_m1": 3436.8, + "Se83": 1338.0, + "Se83_m1": 70.1, + "Se84": 195.6, + "Se85": 31.7, + "Se86": 14.3, + "Se87": 5.5, + "Se88": 1.53, + "Se89": 0.41, + "Se90": 0.161, + "Se91": 0.27, + "Se92": 0.093, + "Se93": 0.062, + "Se94": 0.059, + "Br67": 0.0443, + "Br68": 1.2e-06, + "Br69": 2.4e-08, + "Br70": 0.0791, + "Br70_m1": 2.2, + "Br71": 21.4, + "Br72": 78.6, + "Br72_m1": 10.6, + "Br73": 204.0, + "Br74": 1524.0, + "Br74_m1": 2760.0, + "Br75": 5802.0, + "Br76": 58320.0, + "Br76_m1": 1.31, + "Br77": 205329.6, + "Br77_m1": 256.8, + "Br78": 387.0, + "Br79_m1": 4.86, + "Br80": 1060.8, + "Br80_m1": 15913.8, + "Br82": 127015.2, + "Br82_m1": 367.8, + "Br83": 8640.0, + "Br84": 1905.6, + "Br84_m1": 360.0, + "Br85": 174.0, + "Br86": 55.0, + "Br87": 55.65, + "Br88": 16.29, + "Br89": 4.4, + "Br90": 1.92, + "Br91": 0.541, + "Br92": 0.343, + "Br93": 0.102, + "Br94": 0.07, + "Br95": 0.066, + "Br96": 0.042, + "Br97": 0.04, + "Kr69": 0.032, + "Kr70": 0.052, + "Kr71": 0.1, + "Kr72": 17.1, + "Kr73": 27.3, + "Kr74": 690.0, + "Kr75": 257.4, + "Kr76": 53280.0, + "Kr77": 4464.0, + "Kr79": 126144.0, + "Kr79_m1": 50.0, + "Kr81": 7226690000000.0, + "Kr81_m1": 13.1, + "Kr83_m1": 6588.0, + "Kr85": 339433500.0, + "Kr85_m1": 16128.0, + "Kr87": 4578.0, + "Kr88": 10224.0, + "Kr89": 189.0, + "Kr90": 32.32, + "Kr91": 8.57, + "Kr92": 1.84, + "Kr93": 1.286, + "Kr94": 0.212, + "Kr95": 0.114, + "Kr96": 0.08, + "Kr97": 0.063, + "Kr98": 0.046, + "Kr99": 0.027, + "Kr100": 0.007, + "Rb71": 1e-09, + "Rb72": 1.2e-06, + "Rb73": 3e-08, + "Rb74": 0.064776, + "Rb75": 19.0, + "Rb76": 36.5, + "Rb77": 226.2, + "Rb78": 1059.6, + "Rb78_m1": 344.4, + "Rb79": 1374.0, + "Rb80": 34.0, + "Rb81": 16459.2, + "Rb81_m1": 1830.0, + "Rb82": 75.45, + "Rb82_m1": 23299.2, + "Rb83": 7447680.0, + "Rb84": 2835648.0, + "Rb84_m1": 1215.6, + "Rb86": 1609718.0, + "Rb86_m1": 61.02, + "Rb87": 1.51792e18, + "Rb88": 1066.38, + "Rb89": 909.0, + "Rb90": 158.0, + "Rb90_m1": 258.0, + "Rb91": 58.4, + "Rb92": 4.492, + "Rb93": 5.84, + "Rb94": 2.702, + "Rb95": 0.3777, + "Rb96": 0.203, + "Rb97": 0.1691, + "Rb98": 0.114, + "Rb98_m1": 0.096, + "Rb99": 0.054, + "Rb100": 0.051, + "Rb101": 0.032, + "Rb102": 0.037, + "Sr73": 0.025, + "Sr74": 1.2e-06, + "Sr75": 0.088, + "Sr76": 7.89, + "Sr77": 9.0, + "Sr78": 150.0, + "Sr79": 135.0, + "Sr80": 6378.0, + "Sr81": 1338.0, + "Sr82": 2190240.0, + "Sr83": 116676.0, + "Sr83_m1": 4.95, + "Sr85": 5602176.0, + "Sr85_m1": 4057.8, + "Sr87_m1": 10134.0, + "Sr89": 4365792.0, + "Sr90": 908543300.0, + "Sr91": 34668.0, + "Sr92": 9756.0, + "Sr93": 445.38, + "Sr94": 75.3, + "Sr95": 23.9, + "Sr96": 1.07, + "Sr97": 0.429, + "Sr98": 0.653, + "Sr99": 0.27, + "Sr100": 0.202, + "Sr101": 0.118, + "Sr102": 0.069, + "Sr103": 0.068, + "Sr104": 0.043, + "Sr105": 0.0556, + "Y76": 2e-07, + "Y77": 0.062, + "Y78": 0.05, + "Y78_m1": 5.7, + "Y79": 14.8, + "Y80": 30.1, + "Y80_m1": 4.8, + "Y81": 70.4, + "Y82": 8.3, + "Y83": 424.8, + "Y83_m1": 171.0, + "Y84": 2370.0, + "Y84_m1": 4.6, + "Y85": 9648.0, + "Y85_m1": 17496.0, + "Y86": 53064.0, + "Y86_m1": 2880.0, + "Y87": 287280.0, + "Y87_m1": 48132.0, + "Y88": 9212486.0, + "Y88_m1": 0.000301, + "Y88_m2": 0.01397, + "Y89_m1": 15.663, + "Y90": 230400.0, + "Y90_m1": 11484.0, + "Y91": 5055264.0, + "Y91_m1": 2982.6, + "Y92": 12744.0, + "Y93": 36648.0, + "Y93_m1": 0.82, + "Y94": 1122.0, + "Y95": 618.0, + "Y96": 5.34, + "Y96_m1": 9.6, + "Y97": 3.75, + "Y97_m1": 1.17, + "Y97_m2": 0.142, + "Y98": 0.548, + "Y98_m1": 2.0, + "Y99": 1.47, + "Y100": 0.735, + "Y100_m1": 0.94, + "Y101": 0.45, + "Y102": 0.36, + "Y102_m1": 0.298, + "Y103": 0.23, + "Y104": 0.18, + "Y105": 0.088, + "Y106": 0.066, + "Y107": 0.03, + "Y108": 0.048, + "Zr78": 2e-07, + "Zr79": 0.056, + "Zr80": 4.6, + "Zr81": 5.5, + "Zr82": 32.0, + "Zr83": 41.6, + "Zr84": 1554.0, + "Zr85": 471.6, + "Zr85_m1": 10.9, + "Zr86": 59400.0, + "Zr87": 6048.0, + "Zr87_m1": 14.0, + "Zr88": 7205760.0, + "Zr89": 282276.0, + "Zr89_m1": 249.66, + "Zr90_m1": 0.8092, + "Zr93": 48283100000000.0, + "Zr95": 5532365.0, + "Zr96": 6.31152e26, + "Zr97": 60296.4, + "Zr98": 30.7, + "Zr99": 2.1, + "Zr100": 7.1, + "Zr101": 2.3, + "Zr102": 2.9, + "Zr103": 1.3, + "Zr104": 1.2, + "Zr105": 0.6, + "Zr106": 0.27, + "Zr107": 0.15, + "Zr108": 0.08, + "Zr109": 0.117, + "Zr110": 0.098, + "Nb81": 0.8, + "Nb82": 0.05, + "Nb83": 4.1, + "Nb84": 9.8, + "Nb85": 20.9, + "Nb85_m1": 3.3, + "Nb86": 88.0, + "Nb87": 225.0, + "Nb87_m1": 156.0, + "Nb88": 873.0, + "Nb88_m1": 466.8, + "Nb89": 7308.0, + "Nb89_m1": 3960.0, + "Nb90": 52560.0, + "Nb90_m1": 18.81, + "Nb90_m2": 0.00619, + "Nb91": 21459200000.0, + "Nb91_m1": 5258304.0, + "Nb92": 1095050000000000.0, + "Nb92_m1": 876960.0, + "Nb93_m1": 509024100.0, + "Nb94": 640619000000.0, + "Nb94_m1": 375.78, + "Nb95": 3023222.0, + "Nb95_m1": 311904.0, + "Nb96": 84060.0, + "Nb97": 4326.0, + "Nb97_m1": 58.7, + "Nb98": 2.86, + "Nb98_m1": 3078.0, + "Nb99": 15.0, + "Nb99_m1": 150.0, + "Nb100": 1.5, + "Nb100_m1": 2.99, + "Nb101": 7.1, + "Nb102": 4.3, + "Nb102_m1": 1.3, + "Nb103": 1.5, + "Nb104": 4.9, + "Nb104_m1": 0.94, + "Nb105": 2.95, + "Nb106": 0.93, + "Nb107": 0.3, + "Nb108": 0.193, + "Nb109": 0.19, + "Nb110": 0.17, + "Nb111": 0.08, + "Nb112": 0.069, + "Nb113": 0.03, + "Mo83": 0.0195, + "Mo84": 3.8, + "Mo85": 3.2, + "Mo86": 19.6, + "Mo87": 14.02, + "Mo88": 480.0, + "Mo89": 126.6, + "Mo89_m1": 0.19, + "Mo90": 20412.0, + "Mo91": 929.4, + "Mo91_m1": 64.6, + "Mo93": 126230000000.0, + "Mo93_m1": 24660.0, + "Mo99": 237513.6, + "Mo100": 2.3037e26, + "Mo101": 876.6, + "Mo102": 678.0, + "Mo103": 67.5, + "Mo104": 60.0, + "Mo105": 35.6, + "Mo106": 8.73, + "Mo107": 3.5, + "Mo108": 1.09, + "Mo109": 0.53, + "Mo110": 0.3, + "Mo111": 0.2, + "Mo112": 0.287, + "Mo113": 0.1, + "Mo114": 0.08, + "Mo115": 0.092, + "Tc85": 0.5, + "Tc86": 0.054, + "Tc86_m1": 1.1e-06, + "Tc87": 2.2, + "Tc88": 5.8, + "Tc88_m1": 6.4, + "Tc89": 12.8, + "Tc89_m1": 12.9, + "Tc90": 8.7, + "Tc90_m1": 49.2, + "Tc91": 188.4, + "Tc91_m1": 198.0, + "Tc92": 255.0, + "Tc93": 9900.0, + "Tc93_m1": 2610.0, + "Tc94": 17580.0, + "Tc94_m1": 3120.0, + "Tc95": 72000.0, + "Tc95_m1": 5270400.0, + "Tc96": 369792.0, + "Tc96_m1": 3090.0, + "Tc97": 132857000000000.0, + "Tc97_m1": 7862400.0, + "Tc98": 132542000000000.0, + "Tc99": 6661810000000.0, + "Tc99_m1": 21624.12, + "Tc100": 15.46, + "Tc101": 852.0, + "Tc102": 5.28, + "Tc102_m1": 261.0, + "Tc103": 54.2, + "Tc104": 1098.0, + "Tc105": 456.0, + "Tc106": 35.6, + "Tc107": 21.2, + "Tc108": 5.17, + "Tc109": 0.86, + "Tc110": 0.92, + "Tc111": 0.29, + "Tc112": 0.28, + "Tc113": 0.16, + "Tc114": 0.15, + "Tc115": 0.073, + "Tc116": 0.09, + "Tc117": 0.04, + "Tc118": 0.066, + "Ru87": 1.5e-06, + "Ru88": 1.25, + "Ru89": 1.5, + "Ru90": 11.7, + "Ru91": 7.9, + "Ru91_m1": 7.6, + "Ru92": 219.0, + "Ru93": 59.7, + "Ru93_m1": 10.8, + "Ru94": 3108.0, + "Ru95": 5914.8, + "Ru97": 244512.0, + "Ru103": 3390941.0, + "Ru103_m1": 0.00169, + "Ru105": 15984.0, + "Ru106": 32123520.0, + "Ru107": 225.0, + "Ru108": 273.0, + "Ru109": 34.5, + "Ru110": 11.6, + "Ru111": 2.12, + "Ru112": 1.75, + "Ru113": 0.8, + "Ru113_m1": 0.51, + "Ru114": 0.52, + "Ru115": 0.74, + "Ru116": 0.204, + "Ru117": 0.142, + "Ru118": 0.123, + "Ru119": 0.162, + "Ru120": 0.149, + "Rh89": 1.5e-06, + "Rh90": 0.0145, + "Rh90_m1": 1.05, + "Rh91": 1.47, + "Rh92": 4.66, + "Rh93": 11.9, + "Rh94": 70.6, + "Rh94_m1": 25.8, + "Rh95": 301.2, + "Rh95_m1": 117.6, + "Rh96": 594.0, + "Rh96_m1": 90.6, + "Rh97": 1842.0, + "Rh97_m1": 2772.0, + "Rh98": 523.2, + "Rh98_m1": 216.0, + "Rh99": 1391040.0, + "Rh99_m1": 16920.0, + "Rh100": 74880.0, + "Rh100_m1": 276.0, + "Rh101": 104140100.0, + "Rh101_m1": 374976.0, + "Rh102": 17910720.0, + "Rh102_m1": 118088500.0, + "Rh103_m1": 3366.84, + "Rh104": 42.3, + "Rh104_m1": 260.4, + "Rh105": 127296.0, + "Rh105_m1": 40.0, + "Rh106": 30.07, + "Rh106_m1": 7860.0, + "Rh107": 1302.0, + "Rh108": 16.8, + "Rh108_m1": 360.0, + "Rh109": 80.0, + "Rh110": 3.2, + "Rh110_m1": 28.5, + "Rh111": 11.0, + "Rh112": 2.1, + "Rh112_m1": 6.73, + "Rh113": 2.8, + "Rh114": 1.85, + "Rh115": 0.99, + "Rh116": 0.68, + "Rh116_m1": 0.57, + "Rh117": 0.44, + "Rh118": 0.266, + "Rh119": 0.171, + "Rh120": 0.136, + "Rh121": 0.151, + "Rh122": 0.108, + "Rh123": 0.0489, + "Pd91": 1e-06, + "Pd92": 0.8, + "Pd93": 1.3, + "Pd94": 9.0, + "Pd95": 10.0, + "Pd95_m1": 13.3, + "Pd96": 122.0, + "Pd97": 186.0, + "Pd98": 1062.0, + "Pd99": 1284.0, + "Pd100": 313632.0, + "Pd101": 30492.0, + "Pd103": 1468022.0, + "Pd107": 205124000000000.0, + "Pd107_m1": 21.3, + "Pd109": 49324.32, + "Pd109_m1": 281.4, + "Pd111": 1404.0, + "Pd111_m1": 19800.0, + "Pd112": 75708.0, + "Pd113": 93.0, + "Pd113_m1": 0.3, + "Pd114": 145.2, + "Pd115": 25.0, + "Pd115_m1": 50.0, + "Pd116": 11.8, + "Pd117": 4.3, + "Pd117_m1": 0.0191, + "Pd118": 1.9, + "Pd119": 0.92, + "Pd120": 0.5, + "Pd121": 0.285, + "Pd122": 0.175, + "Pd123": 0.244, + "Pd124": 0.038, + "Pd125": 0.3987, + "Pd126": 0.2499, + "Ag93": 1.5e-06, + "Ag94": 0.035, + "Ag94_m1": 0.55, + "Ag94_m2": 0.4, + "Ag95": 2.0, + "Ag95_m1": 0.5, + "Ag95_m2": 0.016, + "Ag95_m3": 0.04, + "Ag96": 4.4, + "Ag96_m1": 6.9, + "Ag97": 25.5, + "Ag98": 47.5, + "Ag99": 124.0, + "Ag99_m1": 10.5, + "Ag100": 120.6, + "Ag100_m1": 134.4, + "Ag101": 666.0, + "Ag101_m1": 3.1, + "Ag102": 774.0, + "Ag102_m1": 462.0, + "Ag103": 3942.0, + "Ag103_m1": 5.7, + "Ag104": 4152.0, + "Ag104_m1": 2010.0, + "Ag105": 3567456.0, + "Ag105_m1": 433.8, + "Ag106": 1437.6, + "Ag106_m1": 715392.0, + "Ag107_m1": 44.3, + "Ag108": 142.92, + "Ag108_m1": 13822200000.0, + "Ag109_m1": 39.6, + "Ag110": 24.6, + "Ag110_m1": 21579260.0, + "Ag111": 643680.0, + "Ag111_m1": 64.8, + "Ag112": 11268.0, + "Ag113": 19332.0, + "Ag113_m1": 68.7, + "Ag114": 4.6, + "Ag114_m1": 0.0015, + "Ag115": 1200.0, + "Ag115_m1": 18.0, + "Ag116": 237.0, + "Ag116_m1": 20.0, + "Ag116_m2": 9.3, + "Ag117": 72.8, + "Ag117_m1": 5.34, + "Ag118": 3.76, + "Ag118_m1": 2.0, + "Ag119": 2.1, + "Ag119_m1": 6.0, + "Ag120": 1.23, + "Ag120_m1": 0.32, + "Ag121": 0.78, + "Ag122": 0.529, + "Ag122_m1": 0.2, + "Ag123": 0.3, + "Ag124": 0.172, + "Ag125": 0.166, + "Ag126": 0.107, + "Ag127": 0.109, + "Ag128": 0.058, + "Ag129": 0.046, + "Ag130": 0.05, + "Cd95": 0.005, + "Cd96": 1.0, + "Cd97": 2.8, + "Cd98": 9.2, + "Cd99": 16.0, + "Cd100": 49.1, + "Cd101": 81.6, + "Cd102": 330.0, + "Cd103": 438.0, + "Cd104": 3462.0, + "Cd105": 3330.0, + "Cd107": 23400.0, + "Cd109": 39864960.0, + "Cd111_m1": 2912.4, + "Cd113": 2.53723e23, + "Cd113_m1": 444962200.0, + "Cd115": 192456.0, + "Cd115_m1": 3849984.0, + "Cd116": 9.78286e26, + "Cd117": 8964.0, + "Cd117_m1": 12096.0, + "Cd118": 3018.0, + "Cd119": 161.4, + "Cd119_m1": 132.0, + "Cd120": 50.8, + "Cd121": 13.5, + "Cd121_m1": 8.3, + "Cd122": 5.24, + "Cd123": 2.1, + "Cd123_m1": 1.82, + "Cd124": 1.25, + "Cd125": 0.68, + "Cd125_m1": 0.48, + "Cd126": 0.515, + "Cd127": 0.37, + "Cd128": 0.28, + "Cd129": 0.27, + "Cd130": 0.162, + "Cd131": 0.068, + "Cd132": 0.097, + "In97": 0.005, + "In98": 0.0425, + "In98_m1": 1.6, + "In99": 3.05, + "In100": 5.9, + "In101": 15.1, + "In102": 23.3, + "In103": 65.0, + "In103_m1": 34.0, + "In104": 108.0, + "In104_m1": 15.7, + "In105": 304.2, + "In105_m1": 48.0, + "In106": 372.0, + "In106_m1": 312.0, + "In107": 1944.0, + "In107_m1": 50.4, + "In108": 3480.0, + "In108_m1": 2376.0, + "In109": 15001.2, + "In109_m1": 80.4, + "In109_m2": 0.209, + "In110": 17640.0, + "In110_m1": 4146.0, + "In111": 242326.1, + "In111_m1": 462.0, + "In112": 898.2, + "In112_m1": 1233.6, + "In113_m1": 5968.56, + "In114": 71.9, + "In114_m1": 4277664.0, + "In114_m2": 0.0431, + "In115": 1.39169e22, + "In115_m1": 16149.6, + "In116": 14.1, + "In116_m1": 3257.4, + "In116_m2": 2.18, + "In117": 2592.0, + "In117_m1": 6972.0, + "In118": 5.0, + "In118_m1": 267.0, + "In118_m2": 8.5, + "In119": 144.0, + "In119_m1": 1080.0, + "In120": 3.08, + "In120_m1": 46.2, + "In120_m2": 47.3, + "In121": 23.1, + "In121_m1": 232.8, + "In122": 1.5, + "In122_m1": 10.3, + "In122_m2": 10.8, + "In123": 6.17, + "In123_m1": 47.4, + "In124": 3.12, + "In124_m1": 3.7, + "In125": 2.36, + "In125_m1": 12.2, + "In126": 1.53, + "In126_m1": 1.64, + "In127": 1.09, + "In127_m1": 3.67, + "In128": 0.84, + "In128_m1": 0.72, + "In129": 0.61, + "In129_m1": 1.23, + "In130": 0.29, + "In130_m1": 0.54, + "In130_m2": 0.54, + "In131": 0.28, + "In131_m1": 0.35, + "In131_m2": 0.32, + "In132": 0.207, + "In133": 0.165, + "In133_m1": 0.18, + "In134": 0.14, + "In135": 0.092, + "Sn99": 0.005, + "Sn100": 0.86, + "Sn101": 1.7, + "Sn102": 4.5, + "Sn103": 7.0, + "Sn104": 20.8, + "Sn105": 34.0, + "Sn106": 115.0, + "Sn107": 174.0, + "Sn108": 618.0, + "Sn109": 1080.0, + "Sn110": 14796.0, + "Sn111": 2118.0, + "Sn113": 9943776.0, + "Sn113_m1": 1284.0, + "Sn117_m1": 1175040.0, + "Sn119_m1": 25315200.0, + "Sn121": 97308.0, + "Sn121_m1": 1385380000.0, + "Sn123": 11162880.0, + "Sn123_m1": 2403.6, + "Sn125": 832896.0, + "Sn125_m1": 571.2, + "Sn126": 7258250000000.0, + "Sn127": 7560.0, + "Sn127_m1": 247.8, + "Sn128": 3544.2, + "Sn128_m1": 6.5, + "Sn129": 133.8, + "Sn129_m1": 414.0, + "Sn130": 223.2, + "Sn130_m1": 102.0, + "Sn131": 56.0, + "Sn131_m1": 58.4, + "Sn132": 39.7, + "Sn133": 1.46, + "Sn134": 1.05, + "Sn135": 0.53, + "Sn136": 0.25, + "Sn137": 0.19, + "Sb103": 1.5e-06, + "Sb104": 0.46, + "Sb105": 1.22, + "Sb106": 0.6, + "Sb107": 4.0, + "Sb108": 7.4, + "Sb109": 17.0, + "Sb110": 23.0, + "Sb111": 75.0, + "Sb112": 51.4, + "Sb113": 400.2, + "Sb114": 209.4, + "Sb115": 1926.0, + "Sb116": 948.0, + "Sb116_m1": 3618.0, + "Sb117": 10080.0, + "Sb118": 216.0, + "Sb118_m1": 18000.0, + "Sb119": 137484.0, + "Sb119_m1": 0.85, + "Sb120": 953.4, + "Sb120_m1": 497664.0, + "Sb122": 235336.3, + "Sb122_m1": 251.46, + "Sb124": 5201280.0, + "Sb124_m1": 93.0, + "Sb124_m2": 1212.0, + "Sb125": 87053530.0, + "Sb126": 1067040.0, + "Sb126_m1": 1149.0, + "Sb126_m2": 11.0, + "Sb127": 332640.0, + "Sb128": 32436.0, + "Sb128_m1": 624.0, + "Sb129": 15840.0, + "Sb129_m1": 1062.0, + "Sb130": 2370.0, + "Sb130_m1": 378.0, + "Sb131": 1381.8, + "Sb132": 167.4, + "Sb132_m1": 246.0, + "Sb133": 150.0, + "Sb134": 0.78, + "Sb134_m1": 10.07, + "Sb135": 1.679, + "Sb136": 0.923, + "Sb137": 0.45, + "Sb138": 0.168, + "Sb139": 0.127, + "Te105": 6.2e-07, + "Te106": 6e-05, + "Te107": 0.0031, + "Te108": 2.1, + "Te109": 4.6, + "Te110": 18.6, + "Te111": 19.3, + "Te112": 120.0, + "Te113": 102.0, + "Te114": 912.0, + "Te115": 348.0, + "Te115_m1": 402.0, + "Te116": 8964.0, + "Te117": 3720.0, + "Te117_m1": 0.103, + "Te118": 518400.0, + "Te119": 57780.0, + "Te119_m1": 406080.0, + "Te121": 1656288.0, + "Te121_m1": 14186880.0, + "Te123_m1": 10298880.0, + "Te125_m1": 4959360.0, + "Te127": 33660.0, + "Te127_m1": 9417600.0, + "Te128": 2.77707e26, + "Te129": 4176.0, + "Te129_m1": 2903040.0, + "Te131": 1500.0, + "Te131_m1": 119700.0, + "Te132": 276825.6, + "Te133": 750.0, + "Te133_m1": 3324.0, + "Te134": 2508.0, + "Te135": 19.0, + "Te136": 17.5, + "Te137": 2.49, + "Te138": 1.4, + "Te139": 0.347, + "Te140": 0.304, + "Te141": 0.213, + "Te142": 0.2, + "I108": 0.036, + "I109": 0.000103, + "I110": 0.65, + "I111": 2.5, + "I112": 3.42, + "I113": 6.6, + "I114": 2.1, + "I114_m1": 6.2, + "I115": 78.0, + "I116": 2.91, + "I117": 133.2, + "I118": 822.0, + "I118_m1": 510.0, + "I119": 1146.0, + "I120": 4896.0, + "I120_m1": 3180.0, + "I121": 7632.0, + "I122": 217.8, + "I123": 47604.24, + "I124": 360806.4, + "I125": 5132160.0, + "I126": 1117152.0, + "I128": 1499.4, + "I129": 495454000000000.0, + "I130": 44496.0, + "I130_m1": 530.4, + "I131": 693377.3, + "I132": 8262.0, + "I132_m1": 4993.2, + "I133": 74880.0, + "I133_m1": 9.0, + "I134": 3150.0, + "I134_m1": 211.2, + "I135": 23652.0, + "I136": 83.4, + "I136_m1": 46.9, + "I137": 24.5, + "I138": 6.23, + "I139": 2.28, + "I140": 0.86, + "I141": 0.43, + "I142": 0.222, + "I143": 0.296, + "I144": 0.194, + "I145": 0.127, + "Xe110": 0.093, + "Xe111": 0.81, + "Xe112": 2.7, + "Xe113": 2.74, + "Xe114": 10.0, + "Xe115": 18.0, + "Xe116": 59.0, + "Xe117": 61.0, + "Xe118": 228.0, + "Xe119": 348.0, + "Xe120": 2400.0, + "Xe121": 2406.0, + "Xe122": 72360.0, + "Xe123": 7488.0, + "Xe125": 60840.0, + "Xe125_m1": 56.9, + "Xe127": 3144960.0, + "Xe127_m1": 69.2, + "Xe129_m1": 767232.0, + "Xe131_m1": 1022976.0, + "Xe132_m1": 0.00839, + "Xe133": 452995.2, + "Xe133_m1": 189216.0, + "Xe134_m1": 0.29, + "Xe135": 32904.0, + "Xe135_m1": 917.4, + "Xe137": 229.08, + "Xe138": 844.8, + "Xe139": 39.68, + "Xe140": 13.6, + "Xe141": 1.73, + "Xe142": 1.23, + "Xe143": 0.3, + "Xe144": 1.15, + "Xe145": 0.188, + "Xe146": 0.369, + "Xe147": 0.1, + "Cs112": 0.0005, + "Cs113": 1.67e-05, + "Cs114": 0.57, + "Cs115": 1.4, + "Cs116": 0.7, + "Cs116_m1": 3.85, + "Cs117": 8.4, + "Cs117_m1": 6.5, + "Cs118": 14.0, + "Cs118_m1": 17.0, + "Cs119": 43.0, + "Cs119_m1": 30.4, + "Cs120": 61.3, + "Cs120_m1": 57.0, + "Cs121": 155.0, + "Cs121_m1": 122.0, + "Cs122": 21.18, + "Cs122_m1": 0.36, + "Cs122_m2": 222.0, + "Cs123": 352.8, + "Cs123_m1": 1.64, + "Cs124": 30.8, + "Cs124_m1": 6.3, + "Cs125": 2802.0, + "Cs125_m1": 0.0009, + "Cs126": 98.4, + "Cs127": 22500.0, + "Cs128": 217.2, + "Cs129": 115416.0, + "Cs130": 1752.6, + "Cs130_m1": 207.6, + "Cs131": 837129.6, + "Cs132": 559872.0, + "Cs134": 65172760.0, + "Cs134_m1": 10483.2, + "Cs135": 72582500000000.0, + "Cs135_m1": 3180.0, + "Cs136": 1137024.0, + "Cs136_m1": 19.0, + "Cs137": 949252600.0, + "Cs138": 2004.6, + "Cs138_m1": 174.6, + "Cs139": 556.2, + "Cs140": 63.7, + "Cs141": 24.84, + "Cs142": 1.684, + "Cs143": 1.791, + "Cs144": 0.994, + "Cs144_m1": 1.0, + "Cs145": 0.587, + "Cs146": 0.321, + "Cs147": 0.23, + "Cs148": 0.146, + "Cs149": 0.05, + "Cs150": 0.05, + "Cs151": 0.05, + "Ba114": 0.43, + "Ba115": 0.45, + "Ba116": 1.3, + "Ba117": 1.75, + "Ba118": 5.5, + "Ba119": 5.4, + "Ba120": 24.0, + "Ba121": 29.7, + "Ba122": 117.0, + "Ba123": 162.0, + "Ba124": 660.0, + "Ba125": 210.0, + "Ba126": 6000.0, + "Ba127": 762.0, + "Ba127_m1": 1.9, + "Ba128": 209952.0, + "Ba129": 8028.0, + "Ba129_m1": 7776.0, + "Ba130_m1": 0.0094, + "Ba131": 993600.0, + "Ba131_m1": 876.0, + "Ba133": 331862400.0, + "Ba133_m1": 140040.0, + "Ba135_m1": 103320.0, + "Ba136_m1": 0.3084, + "Ba137_m1": 153.12, + "Ba139": 4983.6, + "Ba140": 1101833.0, + "Ba141": 1096.2, + "Ba142": 636.0, + "Ba143": 14.5, + "Ba144": 11.5, + "Ba145": 4.31, + "Ba146": 2.22, + "Ba147": 0.894, + "Ba148": 0.612, + "Ba149": 0.344, + "Ba150": 0.3, + "Ba151": 0.259, + "Ba152": 0.228, + "Ba153": 0.158, + "La117": 0.0235, + "La117_m1": 0.01, + "La118": 1.0, + "La119": 2.0, + "La120": 2.8, + "La121": 5.3, + "La122": 8.6, + "La123": 17.0, + "La124": 29.21, + "La124_m1": 21.0, + "La125": 64.8, + "La125_m1": 0.4, + "La126": 54.0, + "La126_m1": 50.0, + "La127": 306.0, + "La127_m1": 222.0, + "La128": 310.8, + "La128_m1": 60.0, + "La129": 696.0, + "La129_m1": 0.56, + "La130": 522.0, + "La131": 3540.0, + "La132": 17280.0, + "La132_m1": 1458.0, + "La133": 14083.2, + "La134": 387.0, + "La135": 70200.0, + "La136": 592.2, + "La136_m1": 0.114, + "La137": 1893460000000.0, + "La138": 3.21888e18, + "La140": 145026.7, + "La141": 14112.0, + "La142": 5466.0, + "La143": 852.0, + "La144": 40.8, + "La145": 24.8, + "La146": 6.27, + "La146_m1": 10.0, + "La147": 4.06, + "La148": 1.26, + "La149": 1.05, + "La150": 0.86, + "La151": 0.778, + "La152": 0.451, + "La153": 0.342, + "La154": 0.228, + "La155": 0.184, + "Ce119": 0.2, + "Ce120": 0.25, + "Ce121": 1.1, + "Ce122": 2.73, + "Ce123": 3.8, + "Ce124": 6.0, + "Ce125": 10.2, + "Ce126": 51.0, + "Ce127": 31.0, + "Ce127_m1": 28.6, + "Ce128": 235.8, + "Ce129": 210.0, + "Ce130": 1374.0, + "Ce131": 618.0, + "Ce131_m1": 324.0, + "Ce132": 12636.0, + "Ce132_m1": 0.0094, + "Ce133": 5820.0, + "Ce133_m1": 17640.0, + "Ce134": 273024.0, + "Ce135": 63720.0, + "Ce135_m1": 20.0, + "Ce137": 32400.0, + "Ce137_m1": 123840.0, + "Ce138_m1": 0.00865, + "Ce139": 11892180.0, + "Ce139_m1": 54.8, + "Ce141": 2808691.0, + "Ce143": 118940.4, + "Ce144": 24616220.0, + "Ce145": 180.6, + "Ce146": 811.2, + "Ce147": 56.4, + "Ce148": 56.0, + "Ce149": 5.3, + "Ce150": 4.0, + "Ce151": 1.76, + "Ce152": 1.4, + "Ce153": 0.979, + "Ce154": 0.775, + "Ce155": 0.471, + "Ce156": 0.369, + "Ce157": 0.2428, + "Pr121": 1.4, + "Pr122": 0.5, + "Pr123": 0.8, + "Pr124": 1.2, + "Pr125": 3.3, + "Pr126": 3.14, + "Pr127": 4.2, + "Pr128": 2.85, + "Pr129": 32.0, + "Pr130": 40.0, + "Pr131": 90.6, + "Pr131_m1": 5.73, + "Pr132": 96.0, + "Pr133": 390.0, + "Pr134": 1020.0, + "Pr134_m1": 660.0, + "Pr135": 1440.0, + "Pr136": 786.0, + "Pr137": 4608.0, + "Pr138": 87.0, + "Pr138_m1": 7632.0, + "Pr139": 15876.0, + "Pr140": 203.4, + "Pr142": 68832.0, + "Pr142_m1": 876.0, + "Pr143": 1172448.0, + "Pr144": 1036.8, + "Pr144_m1": 432.0, + "Pr145": 21542.4, + "Pr146": 1449.0, + "Pr147": 804.0, + "Pr148": 137.4, + "Pr148_m1": 120.6, + "Pr149": 135.6, + "Pr150": 6.19, + "Pr151": 18.9, + "Pr152": 3.63, + "Pr153": 4.28, + "Pr154": 2.3, + "Pr155": 0.852, + "Pr156": 0.733, + "Pr157": 0.598, + "Pr158": 0.1342, + "Pr159": 0.1055, + "Nd124": 0.5, + "Nd125": 0.6, + "Nd126": 2e-07, + "Nd127": 1.8, + "Nd128": 5.0, + "Nd129": 4.9, + "Nd130": 21.0, + "Nd131": 26.0, + "Nd132": 94.0, + "Nd133": 70.0, + "Nd133_m1": 70.0, + "Nd134": 510.0, + "Nd135": 744.0, + "Nd135_m1": 330.0, + "Nd136": 3039.0, + "Nd137": 2310.0, + "Nd137_m1": 1.6, + "Nd138": 18144.0, + "Nd139": 1782.0, + "Nd139_m1": 19800.0, + "Nd140": 291168.0, + "Nd141": 8964.0, + "Nd141_m1": 62.0, + "Nd144": 7.22669e22, + "Nd147": 948672.0, + "Nd149": 6220.8, + "Nd150": 2.49305e26, + "Nd151": 746.4, + "Nd152": 684.0, + "Nd153": 31.6, + "Nd154": 25.9, + "Nd155": 8.9, + "Nd156": 5.49, + "Nd157": 1.906, + "Nd158": 1.331, + "Nd159": 0.773, + "Nd160": 0.5883, + "Nd161": 0.4884, + "Pm126": 0.5, + "Pm127": 1.0, + "Pm128": 1.0, + "Pm129": 2.4, + "Pm130": 2.6, + "Pm131": 6.3, + "Pm132": 6.2, + "Pm133": 15.0, + "Pm133_m1": 8.8, + "Pm134": 5.0, + "Pm134_m1": 22.0, + "Pm135": 49.0, + "Pm135_m1": 45.0, + "Pm136": 47.0, + "Pm136_m1": 107.0, + "Pm137": 144.0, + "Pm138": 10.0, + "Pm138_m1": 194.4, + "Pm139": 249.0, + "Pm139_m1": 0.18, + "Pm140": 357.0, + "Pm140_m1": 357.0, + "Pm141": 1254.0, + "Pm142": 40.5, + "Pm142_m1": 0.002, + "Pm143": 22896000.0, + "Pm144": 31363200.0, + "Pm145": 558569500.0, + "Pm146": 174513500.0, + "Pm147": 82788210.0, + "Pm148": 463795.2, + "Pm148_m1": 3567456.0, + "Pm149": 191088.0, + "Pm150": 9648.0, + "Pm151": 102240.0, + "Pm152": 247.2, + "Pm152_m1": 451.2, + "Pm152_m2": 828.0, + "Pm153": 315.0, + "Pm154": 103.8, + "Pm154_m1": 160.8, + "Pm155": 41.5, + "Pm156": 26.7, + "Pm157": 10.56, + "Pm158": 4.8, + "Pm159": 1.47, + "Pm160": 1.561, + "Pm161": 1.065, + "Pm162": 0.2679, + "Pm163": 0.2, + "Sm128": 0.5, + "Sm129": 0.55, + "Sm130": 1.0, + "Sm131": 1.2, + "Sm132": 4.0, + "Sm133": 3.7, + "Sm134": 9.5, + "Sm135": 10.3, + "Sm136": 47.0, + "Sm137": 45.0, + "Sm138": 186.0, + "Sm139": 154.2, + "Sm139_m1": 10.7, + "Sm140": 889.2, + "Sm141": 612.0, + "Sm141_m1": 1356.0, + "Sm142": 4349.4, + "Sm143": 525.0, + "Sm143_m1": 66.0, + "Sm143_m2": 0.03, + "Sm145": 29376000.0, + "Sm146": 3250430000000000.0, + "Sm147": 3.34511e18, + "Sm148": 2.20903e23, + "Sm151": 2840184000.0, + "Sm153": 167400.0, + "Sm153_m1": 0.0106, + "Sm155": 1338.0, + "Sm156": 33840.0, + "Sm157": 482.0, + "Sm158": 318.0, + "Sm159": 11.37, + "Sm160": 9.6, + "Sm161": 4.8, + "Sm162": 2.4, + "Sm163": 1.748, + "Sm164": 1.226, + "Sm165": 0.764, + "Eu130": 0.001, + "Eu131": 0.0178, + "Eu132": 0.1, + "Eu133": 1.0, + "Eu134": 0.5, + "Eu135": 1.5, + "Eu136": 3.8, + "Eu136_m1": 3.3, + "Eu136_m2": 3.8, + "Eu137": 11.0, + "Eu138": 12.1, + "Eu139": 17.9, + "Eu140": 1.51, + "Eu140_m1": 0.125, + "Eu141": 40.7, + "Eu141_m1": 2.7, + "Eu142": 2.34, + "Eu142_m1": 73.38, + "Eu143": 155.4, + "Eu144": 10.2, + "Eu145": 512352.0, + "Eu146": 396576.0, + "Eu147": 2082240.0, + "Eu148": 4708800.0, + "Eu149": 8043840.0, + "Eu150": 1164480000.0, + "Eu150_m1": 46080.0, + "Eu152": 427195200.0, + "Eu152_m1": 33521.76, + "Eu152_m2": 5760.0, + "Eu154": 271426900.0, + "Eu154_m1": 2760.0, + "Eu155": 149993300.0, + "Eu156": 1312416.0, + "Eu157": 54648.0, + "Eu158": 2754.0, + "Eu159": 1086.0, + "Eu160": 38.0, + "Eu161": 26.0, + "Eu162": 10.6, + "Eu163": 7.7, + "Eu164": 2.844, + "Eu165": 2.3, + "Eu166": 0.4, + "Eu167": 0.2, + "Gd134": 0.4, + "Gd135": 1.1, + "Gd136": 2e-05, + "Gd137": 2.2, + "Gd138": 4.7, + "Gd139": 5.8, + "Gd139_m1": 4.8, + "Gd140": 15.8, + "Gd141": 14.0, + "Gd141_m1": 24.5, + "Gd142": 70.2, + "Gd143": 39.0, + "Gd143_m1": 110.0, + "Gd144": 268.2, + "Gd145": 1380.0, + "Gd145_m1": 85.0, + "Gd146": 4170528.0, + "Gd147": 137016.0, + "Gd148": 2354197000.0, + "Gd149": 801792.0, + "Gd150": 56488100000000.0, + "Gd151": 10713600.0, + "Gd152": 3.40822e21, + "Gd153": 20770560.0, + "Gd155_m1": 0.03197, + "Gd159": 66524.4, + "Gd161": 219.6, + "Gd162": 504.0, + "Gd163": 68.0, + "Gd164": 45.0, + "Gd165": 10.3, + "Gd166": 4.8, + "Gd167": 3.0, + "Gd168": 0.3, + "Gd169": 1.0, + "Tb135": 0.995, + "Tb136": 0.2, + "Tb137": 0.6, + "Tb138": 2e-07, + "Tb139": 1.6, + "Tb140": 2.4, + "Tb141": 3.5, + "Tb141_m1": 7.9, + "Tb142": 0.597, + "Tb142_m1": 0.303, + "Tb143": 12.0, + "Tb143_m1": 21.0, + "Tb144": 1.0, + "Tb144_m1": 4.25, + "Tb145": 30.9, + "Tb145_m1": 30.9, + "Tb146": 8.0, + "Tb146_m1": 23.0, + "Tb146_m2": 0.00118, + "Tb147": 5904.0, + "Tb147_m1": 109.8, + "Tb148": 3600.0, + "Tb148_m1": 132.0, + "Tb149": 14824.8, + "Tb149_m1": 249.6, + "Tb150": 12528.0, + "Tb150_m1": 348.0, + "Tb151": 63392.4, + "Tb151_m1": 25.0, + "Tb152": 63000.0, + "Tb152_m1": 252.0, + "Tb153": 202176.0, + "Tb154": 77400.0, + "Tb154_m1": 33840.0, + "Tb154_m2": 81720.0, + "Tb155": 459648.0, + "Tb156": 462240.0, + "Tb156_m1": 87840.0, + "Tb156_m2": 19080.0, + "Tb157": 2240590000.0, + "Tb158": 5680368000.0, + "Tb158_m1": 10.7, + "Tb160": 6246720.0, + "Tb161": 596678.4, + "Tb162": 456.0, + "Tb163": 1170.0, + "Tb164": 180.0, + "Tb165": 126.6, + "Tb166": 25.1, + "Tb167": 19.4, + "Tb168": 8.2, + "Tb169": 2.0, + "Tb170": 3.0, + "Tb171": 0.5, + "Dy138": 0.2, + "Dy139": 0.6, + "Dy140": 0.84, + "Dy141": 0.9, + "Dy142": 2.3, + "Dy143": 3.2, + "Dy143_m1": 3.0, + "Dy144": 9.1, + "Dy145": 6.0, + "Dy145_m1": 14.1, + "Dy146": 29.0, + "Dy146_m1": 0.15, + "Dy147": 40.0, + "Dy147_m1": 55.7, + "Dy148": 198.0, + "Dy149": 252.0, + "Dy149_m1": 0.49, + "Dy150": 430.2, + "Dy151": 1074.0, + "Dy152": 8568.0, + "Dy153": 23040.0, + "Dy154": 94672800000000.0, + "Dy155": 35640.0, + "Dy157": 29304.0, + "Dy157_m1": 0.0216, + "Dy159": 12476160.0, + "Dy165": 8402.4, + "Dy165_m1": 75.42, + "Dy166": 293760.0, + "Dy167": 372.0, + "Dy168": 522.0, + "Dy169": 39.0, + "Dy170": 30.0, + "Dy171": 6.0, + "Dy172": 3.0, + "Dy173": 2.0, + "Ho140": 0.006, + "Ho141": 0.0041, + "Ho142": 0.4, + "Ho143": 2e-07, + "Ho144": 0.7, + "Ho145": 2.4, + "Ho146": 3.6, + "Ho147": 5.8, + "Ho148": 2.2, + "Ho148_m1": 9.59, + "Ho148_m2": 0.00236, + "Ho149": 21.1, + "Ho149_m1": 56.0, + "Ho150": 72.0, + "Ho150_m1": 23.3, + "Ho151": 35.2, + "Ho151_m1": 47.2, + "Ho152": 161.8, + "Ho152_m1": 50.0, + "Ho153": 120.6, + "Ho153_m1": 558.0, + "Ho154": 705.6, + "Ho154_m1": 186.0, + "Ho155": 2880.0, + "Ho155_m1": 0.00088, + "Ho156": 3360.0, + "Ho156_m1": 9.5, + "Ho156_m2": 468.0, + "Ho157": 756.0, + "Ho158": 678.0, + "Ho158_m1": 1680.0, + "Ho158_m2": 1278.0, + "Ho159": 1983.0, + "Ho159_m1": 8.3, + "Ho160": 1536.0, + "Ho160_m1": 18072.0, + "Ho160_m2": 3.0, + "Ho161": 8928.0, + "Ho161_m1": 6.76, + "Ho162": 900.0, + "Ho162_m1": 4020.0, + "Ho163": 144218000000.0, + "Ho163_m1": 1.09, + "Ho164": 1740.0, + "Ho164_m1": 2250.0, + "Ho166": 96480.0, + "Ho166_m1": 37869100000.0, + "Ho167": 11160.0, + "Ho168": 179.4, + "Ho168_m1": 132.0, + "Ho169": 283.2, + "Ho170": 165.6, + "Ho170_m1": 43.0, + "Ho171": 53.0, + "Ho172": 25.0, + "Ho173": 10.0, + "Ho174": 8.0, + "Ho175": 5.0, + "Er143": 0.2, + "Er144": 2e-07, + "Er146": 1.7, + "Er147": 2.5, + "Er147_m1": 2.5, + "Er148": 4.6, + "Er149": 4.0, + "Er149_m1": 8.9, + "Er150": 18.5, + "Er151": 23.5, + "Er151_m1": 0.58, + "Er152": 10.3, + "Er153": 37.1, + "Er154": 223.8, + "Er155": 318.0, + "Er156": 1170.0, + "Er157": 1119.0, + "Er157_m1": 0.076, + "Er158": 8244.0, + "Er159": 2160.0, + "Er160": 102888.0, + "Er161": 11556.0, + "Er163": 4500.0, + "Er165": 37296.0, + "Er167_m1": 2.269, + "Er169": 811468.8, + "Er171": 27057.6, + "Er172": 177480.0, + "Er173": 84.0, + "Er174": 192.0, + "Er175": 72.0, + "Er176": 20.0, + "Er177": 3.0, + "Tm145": 3.1e-06, + "Tm146": 0.08, + "Tm146_m1": 0.2, + "Tm147": 0.58, + "Tm148": 0.7, + "Tm149": 0.9, + "Tm150": 2.2, + "Tm150_m1": 0.0052, + "Tm151": 4.17, + "Tm151_m1": 4.51e-07, + "Tm152": 8.0, + "Tm152_m1": 5.2, + "Tm153": 1.48, + "Tm153_m1": 2.5, + "Tm154": 8.1, + "Tm154_m1": 3.3, + "Tm155": 21.6, + "Tm155_m1": 45.0, + "Tm156": 83.8, + "Tm157": 217.8, + "Tm158": 238.8, + "Tm159": 547.8, + "Tm160": 564.0, + "Tm160_m1": 74.5, + "Tm161": 1812.0, + "Tm162": 1302.0, + "Tm162_m1": 24.3, + "Tm163": 6516.0, + "Tm164": 120.0, + "Tm164_m1": 306.0, + "Tm165": 108216.0, + "Tm166": 27720.0, + "Tm166_m1": 0.34, + "Tm167": 799200.0, + "Tm168": 8043840.0, + "Tm170": 11111040.0, + "Tm171": 60590590.0, + "Tm172": 228960.0, + "Tm173": 29664.0, + "Tm174": 324.0, + "Tm175": 912.0, + "Tm176": 114.0, + "Tm177": 90.0, + "Tm178": 30.0, + "Tm179": 20.0, + "Yb148": 0.25, + "Yb149": 0.7, + "Yb150": 2e-07, + "Yb151": 1.6, + "Yb151_m1": 1.6, + "Yb152": 3.04, + "Yb153": 4.2, + "Yb154": 0.409, + "Yb155": 1.793, + "Yb156": 26.1, + "Yb157": 38.6, + "Yb158": 89.4, + "Yb159": 100.2, + "Yb160": 288.0, + "Yb161": 252.0, + "Yb162": 1132.2, + "Yb163": 663.0, + "Yb164": 4548.0, + "Yb165": 594.0, + "Yb166": 204120.0, + "Yb167": 1050.0, + "Yb169": 2766355.0, + "Yb169_m1": 46.0, + "Yb171_m1": 0.00525, + "Yb175": 361584.0, + "Yb175_m1": 0.0682, + "Yb176_m1": 11.4, + "Yb177": 6879.6, + "Yb177_m1": 6.41, + "Yb178": 4440.0, + "Yb179": 480.0, + "Yb180": 144.0, + "Yb181": 60.0, + "Lu150": 0.043, + "Lu151": 0.0806, + "Lu152": 0.7, + "Lu153": 0.9, + "Lu153_m1": 1.0, + "Lu154": 2.0, + "Lu154_m1": 1.12, + "Lu155": 0.068, + "Lu155_m1": 0.138, + "Lu155_m2": 0.00269, + "Lu156": 0.494, + "Lu156_m1": 0.198, + "Lu157": 6.8, + "Lu157_m1": 4.79, + "Lu158": 10.6, + "Lu159": 12.1, + "Lu160": 36.1, + "Lu160_m1": 40.0, + "Lu161": 77.0, + "Lu161_m1": 0.0073, + "Lu162": 82.2, + "Lu162_m1": 90.0, + "Lu162_m2": 114.0, + "Lu163": 238.2, + "Lu164": 188.4, + "Lu165": 644.4, + "Lu166": 159.0, + "Lu166_m1": 84.6, + "Lu166_m2": 127.2, + "Lu167": 3090.0, + "Lu167_m1": 60.0, + "Lu168": 330.0, + "Lu168_m1": 402.0, + "Lu169": 122616.0, + "Lu169_m1": 160.0, + "Lu170": 173836.8, + "Lu170_m1": 0.67, + "Lu171": 711936.0, + "Lu171_m1": 79.0, + "Lu172": 578880.0, + "Lu172_m1": 222.0, + "Lu173": 43233910.0, + "Lu174": 104455700.0, + "Lu174_m1": 12268800.0, + "Lu176": 1.18657e18, + "Lu176_m1": 13086.0, + "Lu177": 574300.8, + "Lu177_m1": 13862020.0, + "Lu177_m2": 390.0, + "Lu178": 1704.0, + "Lu178_m1": 1386.0, + "Lu179": 16524.0, + "Lu179_m1": 0.0031, + "Lu180": 342.0, + "Lu180_m1": 0.001, + "Lu181": 210.0, + "Lu182": 120.0, + "Lu183": 58.0, + "Lu184": 20.0, + "Hf153": 6e-06, + "Hf154": 2.0, + "Hf155": 0.89, + "Hf156": 0.023, + "Hf157": 0.11, + "Hf158": 2.85, + "Hf159": 5.6, + "Hf160": 13.6, + "Hf161": 18.2, + "Hf162": 39.4, + "Hf163": 40.0, + "Hf164": 111.0, + "Hf165": 76.0, + "Hf166": 406.2, + "Hf167": 123.0, + "Hf168": 1557.0, + "Hf169": 194.4, + "Hf170": 57636.0, + "Hf171": 43560.0, + "Hf171_m1": 29.5, + "Hf172": 59012710.0, + "Hf173": 84960.0, + "Hf174": 6.31152e22, + "Hf175": 6048000.0, + "Hf177_m1": 1.09, + "Hf177_m2": 3084.0, + "Hf178_m1": 4.0, + "Hf178_m2": 978285600.0, + "Hf179_m1": 18.67, + "Hf179_m2": 2164320.0, + "Hf180_m1": 19800.0, + "Hf181": 3662496.0, + "Hf182": 280863000000000.0, + "Hf182_m1": 3690.0, + "Hf183": 3841.2, + "Hf184": 14832.0, + "Hf184_m1": 48.0, + "Hf185": 210.0, + "Hf186": 156.0, + "Hf187": 30.0, + "Hf188": 20.0, + "Ta155": 0.0031, + "Ta156": 0.144, + "Ta156_m1": 0.36, + "Ta157": 0.0101, + "Ta157_m1": 0.0043, + "Ta157_m2": 0.0017, + "Ta158": 0.055, + "Ta158_m1": 0.0367, + "Ta159": 0.83, + "Ta159_m1": 0.515, + "Ta160": 1.55, + "Ta160_m1": 1.7, + "Ta161": 2.89, + "Ta162": 3.57, + "Ta163": 10.6, + "Ta164": 14.2, + "Ta165": 31.0, + "Ta166": 34.4, + "Ta167": 80.0, + "Ta168": 120.0, + "Ta169": 294.0, + "Ta170": 405.6, + "Ta171": 1398.0, + "Ta172": 2208.0, + "Ta173": 11304.0, + "Ta174": 4104.0, + "Ta175": 37800.0, + "Ta176": 29124.0, + "Ta176_m1": 0.0011, + "Ta176_m2": 0.00097, + "Ta177": 203616.0, + "Ta178": 558.6, + "Ta178_m1": 8496.0, + "Ta178_m2": 0.058, + "Ta179": 57434830.0, + "Ta179_m1": 0.009, + "Ta179_m2": 0.0541, + "Ta180": 29354.4, + "Ta182": 9913536.0, + "Ta182_m1": 0.283, + "Ta182_m2": 950.4, + "Ta183": 440640.0, + "Ta184": 31320.0, + "Ta185": 2964.0, + "Ta185_m1": 0.002, + "Ta186": 630.0, + "Ta187": 120.0, + "Ta188": 20.0, + "Ta189": 3.0, + "Ta190": 0.3, + "W158": 0.00125, + "W159": 0.0073, + "W160": 0.091, + "W161": 0.409, + "W162": 1.36, + "W163": 2.8, + "W164": 6.3, + "W165": 5.1, + "W166": 19.2, + "W167": 19.9, + "W168": 53.0, + "W169": 74.0, + "W170": 145.2, + "W171": 142.8, + "W172": 396.0, + "W173": 456.0, + "W174": 1992.0, + "W175": 2112.0, + "W176": 9000.0, + "W177": 7920.0, + "W178": 1866240.0, + "W179": 2223.0, + "W179_m1": 384.0, + "W180": 5.68037e25, + "W180_m1": 0.00547, + "W181": 10471680.0, + "W183_m1": 5.2, + "W185": 6488640.0, + "W185_m1": 100.2, + "W186": 5.36e27, + "W186_m1": 0.003, + "W187": 86400.0, + "W188": 6028992.0, + "W189": 642.0, + "W190": 1800.0, + "W190_m1": 0.0031, + "W191": 20.0, + "W192": 10.0, + "Re160": 0.00085, + "Re161": 0.00037, + "Re161_m1": 0.0156, + "Re162": 0.107, + "Re162_m1": 0.077, + "Re163": 0.39, + "Re163_m1": 0.214, + "Re164": 0.53, + "Re164_m1": 0.87, + "Re165": 1.0, + "Re165_m1": 2.1, + "Re166": 2.25, + "Re167": 5.9, + "Re167_m1": 3.4, + "Re168": 4.4, + "Re169": 8.1, + "Re169_m1": 15.1, + "Re170": 9.2, + "Re171": 15.2, + "Re172": 55.0, + "Re172_m1": 15.0, + "Re173": 118.8, + "Re174": 144.0, + "Re175": 353.4, + "Re176": 318.0, + "Re177": 840.0, + "Re178": 792.0, + "Re179": 1170.0, + "Re180": 146.4, + "Re181": 71640.0, + "Re182": 230400.0, + "Re182_m1": 45720.0, + "Re183": 6048000.0, + "Re183_m1": 0.00104, + "Re184": 3058560.0, + "Re184_m1": 14601600.0, + "Re186": 321261.1, + "Re186_m1": 6311520000000.0, + "Re187": 1.36644e18, + "Re188": 61214.4, + "Re188_m1": 1115.4, + "Re189": 87480.0, + "Re190": 186.0, + "Re190_m1": 11520.0, + "Re191": 588.0, + "Re192": 16.0, + "Re193": 51.9, + "Re194": 1.0, + "Os162": 0.00205, + "Os163": 0.0055, + "Os164": 0.021, + "Os165": 0.071, + "Os166": 0.199, + "Os167": 0.81, + "Os168": 2.1, + "Os169": 3.43, + "Os170": 7.37, + "Os171": 8.3, + "Os172": 19.2, + "Os173": 22.4, + "Os174": 44.0, + "Os175": 84.0, + "Os176": 216.0, + "Os177": 180.0, + "Os178": 300.0, + "Os179": 390.0, + "Os180": 1290.0, + "Os181": 6300.0, + "Os181_m1": 162.0, + "Os182": 78624.0, + "Os183": 46800.0, + "Os183_m1": 35640.0, + "Os185": 8087040.0, + "Os186": 6.31152e22, + "Os189_m1": 20916.0, + "Os190_m1": 594.0, + "Os191": 1330560.0, + "Os191_m1": 47160.0, + "Os192_m1": 5.9, + "Os193": 108396.0, + "Os194": 189345600.0, + "Os195": 540.0, + "Os196": 2094.0, + "Ir164": 0.14, + "Ir164_m1": 9.5e-05, + "Ir165": 1e-06, + "Ir166": 0.0105, + "Ir166_m1": 0.0151, + "Ir167": 0.0352, + "Ir167_m1": 0.0257, + "Ir168": 0.232, + "Ir168_m1": 0.16, + "Ir169": 0.64, + "Ir169_m1": 0.281, + "Ir170": 0.9, + "Ir170_m1": 0.811, + "Ir171": 3.5, + "Ir171_m1": 1.4, + "Ir172": 4.4, + "Ir172_m1": 2.0, + "Ir173": 9.0, + "Ir173_m1": 2.2, + "Ir174": 7.9, + "Ir174_m1": 4.9, + "Ir175": 9.0, + "Ir176": 8.7, + "Ir177": 30.0, + "Ir178": 12.0, + "Ir179": 79.0, + "Ir180": 90.0, + "Ir181": 294.0, + "Ir182": 900.0, + "Ir183": 3480.0, + "Ir184": 11124.0, + "Ir185": 51840.0, + "Ir186": 59904.0, + "Ir186_m1": 6840.0, + "Ir187": 37800.0, + "Ir187_m1": 0.0303, + "Ir188": 149400.0, + "Ir188_m1": 0.0042, + "Ir189": 1140480.0, + "Ir189_m1": 0.0133, + "Ir189_m2": 0.0037, + "Ir190": 1017792.0, + "Ir190_m1": 4032.0, + "Ir190_m2": 11113.2, + "Ir191_m1": 4.899, + "Ir191_m2": 5.5, + "Ir192": 6378653.0, + "Ir192_m1": 87.0, + "Ir192_m2": 7605382000.0, + "Ir193_m1": 909792.0, + "Ir194": 69408.0, + "Ir194_m1": 0.03185, + "Ir194_m2": 14774400.0, + "Ir195": 9000.0, + "Ir195_m1": 13680.0, + "Ir196": 52.0, + "Ir196_m1": 5040.0, + "Ir197": 348.0, + "Ir197_m1": 534.0, + "Ir198": 8.0, + "Ir199": 6.5, + "Pt166": 0.0003, + "Pt167": 0.00078, + "Pt168": 0.002, + "Pt169": 0.007, + "Pt170": 0.014, + "Pt171": 0.051, + "Pt172": 0.096, + "Pt173": 0.382, + "Pt174": 0.889, + "Pt175": 2.53, + "Pt176": 6.33, + "Pt177": 10.6, + "Pt178": 21.1, + "Pt179": 21.2, + "Pt180": 56.0, + "Pt181": 52.0, + "Pt182": 180.0, + "Pt183": 390.0, + "Pt183_m1": 43.0, + "Pt184": 1038.0, + "Pt184_m1": 0.00101, + "Pt185": 4254.0, + "Pt185_m1": 1980.0, + "Pt186": 7488.0, + "Pt187": 8460.0, + "Pt188": 881280.0, + "Pt189": 39132.0, + "Pt190": 2.05124e19, + "Pt191": 242092.8, + "Pt193": 1577880000.0, + "Pt193_m1": 374112.0, + "Pt195_m1": 346464.0, + "Pt197": 71609.4, + "Pt197_m1": 5724.6, + "Pt199": 1848.0, + "Pt199_m1": 13.6, + "Pt200": 45360.0, + "Pt201": 150.0, + "Pt202": 158400.0, + "Au169": 0.00015, + "Au170": 0.000291, + "Au170_m1": 0.00062, + "Au171": 1.9e-05, + "Au171_m1": 0.00102, + "Au172": 0.0047, + "Au173": 0.025, + "Au173_m1": 0.014, + "Au174": 0.139, + "Au174_m1": 0.1629, + "Au175": 0.1, + "Au175_m1": 0.156, + "Au176": 1.05, + "Au176_m1": 1.36, + "Au177": 1.462, + "Au177_m1": 1.18, + "Au178": 2.6, + "Au179": 3.3, + "Au180": 8.1, + "Au181": 13.7, + "Au182": 15.6, + "Au183": 42.8, + "Au184": 20.6, + "Au184_m1": 47.6, + "Au185": 255.0, + "Au186": 642.0, + "Au187": 504.0, + "Au187_m1": 2.3, + "Au188": 530.4, + "Au189": 1722.0, + "Au189_m1": 275.4, + "Au190": 2568.0, + "Au190_m1": 0.125, + "Au191": 11448.0, + "Au191_m1": 0.92, + "Au192": 17784.0, + "Au192_m1": 0.029, + "Au192_m2": 0.16, + "Au193": 63540.0, + "Au193_m1": 3.9, + "Au194": 136872.0, + "Au194_m1": 0.6, + "Au194_m2": 0.42, + "Au195": 16078870.0, + "Au195_m1": 30.5, + "Au196": 532820.2, + "Au196_m1": 8.1, + "Au196_m2": 34560.0, + "Au197_m1": 7.73, + "Au198": 232822.1, + "Au198_m1": 196300.8, + "Au199": 271209.6, + "Au200": 2904.0, + "Au200_m1": 67320.0, + "Au201": 1560.0, + "Au202": 28.4, + "Au203": 60.0, + "Au204": 39.8, + "Au205": 31.0, + "Hg171": 6.9e-05, + "Hg172": 0.000365, + "Hg173": 0.0007, + "Hg174": 0.0019, + "Hg175": 0.0107, + "Hg176": 0.0203, + "Hg177": 0.1273, + "Hg178": 0.269, + "Hg179": 1.08, + "Hg180": 2.58, + "Hg181": 3.6, + "Hg182": 10.83, + "Hg183": 9.4, + "Hg184": 30.9, + "Hg185": 49.1, + "Hg185_m1": 21.6, + "Hg186": 82.8, + "Hg187": 144.0, + "Hg187_m1": 114.0, + "Hg188": 195.0, + "Hg189": 456.0, + "Hg189_m1": 516.0, + "Hg190": 1200.0, + "Hg191": 2940.0, + "Hg191_m1": 3048.0, + "Hg192": 17460.0, + "Hg193": 13680.0, + "Hg193_m1": 42480.0, + "Hg194": 14011600000.0, + "Hg195": 37908.0, + "Hg195_m1": 149760.0, + "Hg197": 230904.0, + "Hg197_m1": 85680.0, + "Hg199_m1": 2560.2, + "Hg203": 4025722.0, + "Hg205": 308.4, + "Hg205_m1": 0.00109, + "Hg206": 499.2, + "Hg207": 174.0, + "Hg208": 2490.0, + "Hg209": 36.5, + "Hg210": 146.0, + "Tl176": 0.006, + "Tl177": 0.018, + "Tl178": 0.06, + "Tl179": 0.23, + "Tl179_m1": 0.0017, + "Tl180": 1.09, + "Tl181": 3.2, + "Tl181_m1": 0.0014, + "Tl182": 3.1, + "Tl183": 6.9, + "Tl183_m1": 0.0533, + "Tl184": 11.0, + "Tl185": 19.5, + "Tl185_m1": 1.93, + "Tl186": 27.5, + "Tl186_m1": 2.9, + "Tl187": 51.0, + "Tl187_m1": 15.6, + "Tl188": 71.0, + "Tl188_m1": 71.0, + "Tl188_m2": 0.041, + "Tl189": 138.0, + "Tl189_m1": 84.0, + "Tl190": 222.0, + "Tl190_m1": 156.0, + "Tl191": 1200.0, + "Tl191_m1": 313.2, + "Tl192": 576.0, + "Tl192_m1": 648.0, + "Tl193": 1296.0, + "Tl193_m1": 126.6, + "Tl194": 1980.0, + "Tl194_m1": 1968.0, + "Tl195": 4176.0, + "Tl195_m1": 3.6, + "Tl196": 6624.0, + "Tl196_m1": 5076.0, + "Tl197": 10224.0, + "Tl197_m1": 0.54, + "Tl198": 19080.0, + "Tl198_m1": 6732.0, + "Tl198_m2": 0.0321, + "Tl199": 26712.0, + "Tl199_m1": 0.0284, + "Tl200": 93960.0, + "Tl200_m1": 0.034, + "Tl201": 262837.4, + "Tl201_m1": 0.00201, + "Tl202": 1063584.0, + "Tl204": 119382400.0, + "Tl206": 252.12, + "Tl206_m1": 224.4, + "Tl207": 286.2, + "Tl207_m1": 1.33, + "Tl208": 183.18, + "Tl209": 132.0, + "Tl210": 78.0, + "Tl211": 60.0, + "Tl212": 67.0, + "Pb178": 0.00023, + "Pb179": 0.003, + "Pb180": 0.0045, + "Pb181": 0.036, + "Pb181_m1": 0.045, + "Pb182": 0.0575, + "Pb183": 0.535, + "Pb183_m1": 0.415, + "Pb184": 0.49, + "Pb185": 6.3, + "Pb185_m1": 4.3, + "Pb186": 4.82, + "Pb187": 15.2, + "Pb187_m1": 18.3, + "Pb188": 25.1, + "Pb189": 39.0, + "Pb189_m1": 50.0, + "Pb190": 71.0, + "Pb191": 79.8, + "Pb191_m1": 130.8, + "Pb192": 210.0, + "Pb193": 120.0, + "Pb193_m1": 348.0, + "Pb194": 720.0, + "Pb195": 900.0, + "Pb195_m1": 900.0, + "Pb196": 2220.0, + "Pb197": 480.0, + "Pb197_m1": 2580.0, + "Pb198": 8640.0, + "Pb199": 5400.0, + "Pb199_m1": 732.0, + "Pb200": 77400.0, + "Pb201": 33588.0, + "Pb201_m1": 60.8, + "Pb202": 1656770000000.0, + "Pb202_m1": 12744.0, + "Pb203": 186912.0, + "Pb203_m1": 6.21, + "Pb203_m2": 0.48, + "Pb204": 4.4e24, + "Pb204_m1": 4015.8, + "Pb205": 545946000000000.0, + "Pb205_m1": 0.00555, + "Pb207_m1": 0.806, + "Pb209": 11710.8, + "Pb210": 700578700.0, + "Pb211": 2166.0, + "Pb212": 38304.0, + "Pb213": 612.0, + "Pb214": 1608.0, + "Pb215": 36.0, + "Bi184": 0.013, + "Bi184_m1": 0.0066, + "Bi185": 5.8e-05, + "Bi186": 0.015, + "Bi186_m1": 0.0098, + "Bi187": 0.032, + "Bi187_m1": 0.00031, + "Bi188": 0.06, + "Bi188_m1": 0.265, + "Bi189": 0.674, + "Bi189_m1": 0.005, + "Bi190": 6.3, + "Bi190_m1": 6.2, + "Bi191": 12.4, + "Bi191_m1": 0.125, + "Bi192": 34.6, + "Bi192_m1": 39.6, + "Bi193": 63.6, + "Bi193_m1": 3.2, + "Bi194": 95.0, + "Bi194_m1": 125.0, + "Bi194_m2": 115.0, + "Bi195": 183.0, + "Bi195_m1": 87.0, + "Bi196": 308.0, + "Bi196_m1": 0.6, + "Bi196_m2": 240.0, + "Bi197": 559.8, + "Bi197_m1": 302.4, + "Bi198": 618.0, + "Bi198_m1": 696.0, + "Bi198_m2": 7.7, + "Bi199": 1620.0, + "Bi199_m1": 1482.0, + "Bi200": 2184.0, + "Bi200_m1": 1860.0, + "Bi200_m2": 0.4, + "Bi201": 6180.0, + "Bi201_m1": 3450.0, + "Bi202": 6156.0, + "Bi203": 42336.0, + "Bi203_m1": 0.305, + "Bi204": 40392.0, + "Bi204_m1": 0.013, + "Bi204_m2": 0.00107, + "Bi205": 1322784.0, + "Bi206": 539395.2, + "Bi207": 995642300.0, + "Bi208": 11613200000000.0, + "Bi208_m1": 0.00258, + "Bi209": 5.99594e26, + "Bi210": 433036.8, + "Bi210_m1": 95935100000000.0, + "Bi211": 128.4, + "Bi212": 3633.0, + "Bi212_m1": 1500.0, + "Bi212_m2": 420.0, + "Bi213": 2735.4, + "Bi214": 1194.0, + "Bi215": 462.0, + "Bi215_m1": 36.4, + "Bi216": 135.0, + "Bi217": 98.5, + "Bi218": 33.0, + "Po188": 0.000425, + "Po189": 0.0035, + "Po190": 0.00245, + "Po191": 0.022, + "Po191_m1": 0.093, + "Po192": 0.0332, + "Po193": 0.37, + "Po193_m1": 0.373, + "Po194": 0.392, + "Po195": 4.64, + "Po195_m1": 1.92, + "Po196": 5.8, + "Po197": 84.0, + "Po197_m1": 32.0, + "Po198": 106.2, + "Po199": 328.2, + "Po199_m1": 250.2, + "Po200": 690.6, + "Po201": 936.0, + "Po201_m1": 537.6, + "Po202": 2676.0, + "Po203": 2202.0, + "Po203_m1": 45.0, + "Po204": 12708.0, + "Po205": 6264.0, + "Po205_m1": 0.000645, + "Po205_m2": 0.0574, + "Po206": 760320.0, + "Po207": 20880.0, + "Po207_m1": 2.79, + "Po208": 91453920.0, + "Po209": 3218880000.0, + "Po210": 11955690.0, + "Po211": 0.516, + "Po211_m1": 25.2, + "Po212": 2.99e-07, + "Po212_m1": 45.1, + "Po213": 4.2e-06, + "Po214": 0.0001643, + "Po215": 0.001781, + "Po216": 0.145, + "Po217": 1.53, + "Po218": 185.88, + "Po219": 3e-07, + "Po220": 3e-07, + "At193": 0.0285, + "At194": 0.04, + "At194_m1": 0.25, + "At195": 0.328, + "At195_m1": 0.147, + "At196": 0.388, + "At196_m1": 1.1e-05, + "At197": 0.388, + "At197_m1": 2.0, + "At198": 4.2, + "At198_m1": 1.0, + "At199": 7.03, + "At200": 43.0, + "At200_m1": 47.0, + "At200_m2": 7.9, + "At201": 85.2, + "At202": 184.0, + "At202_m1": 182.0, + "At202_m2": 0.46, + "At203": 444.0, + "At204": 553.2, + "At204_m1": 0.108, + "At205": 1614.0, + "At206": 1836.0, + "At207": 6480.0, + "At208": 5868.0, + "At209": 19476.0, + "At210": 29160.0, + "At211": 25970.4, + "At212": 0.314, + "At212_m1": 0.119, + "At213": 1.25e-07, + "At214": 5.58e-07, + "At215": 0.0001, + "At216": 0.0003, + "At217": 0.0323, + "At218": 1.5, + "At219": 56.0, + "At220": 222.6, + "At221": 138.0, + "At222": 54.0, + "At223": 50.0, + "Rn195": 0.0065, + "Rn195_m1": 0.005, + "Rn196": 0.0046, + "Rn197": 0.066, + "Rn197_m1": 0.021, + "Rn198": 0.065, + "Rn199": 0.59, + "Rn199_m1": 0.31, + "Rn200": 1.075, + "Rn201": 7.0, + "Rn201_m1": 3.8, + "Rn202": 9.7, + "Rn203": 44.0, + "Rn203_m1": 26.9, + "Rn204": 70.2, + "Rn205": 170.0, + "Rn206": 340.2, + "Rn207": 555.0, + "Rn208": 1461.0, + "Rn209": 1728.0, + "Rn210": 8640.0, + "Rn211": 52560.0, + "Rn212": 1434.0, + "Rn213": 0.025, + "Rn214": 2.7e-07, + "Rn215": 2.3e-06, + "Rn216": 4.5e-05, + "Rn217": 0.00054, + "Rn218": 0.035, + "Rn219": 3.96, + "Rn220": 55.6, + "Rn221": 1542.0, + "Rn222": 330350.4, + "Rn223": 1458.0, + "Rn224": 6420.0, + "Rn225": 279.6, + "Rn226": 444.0, + "Rn227": 20.8, + "Rn228": 65.0, + "Fr199": 0.015, + "Fr200": 0.049, + "Fr201": 0.069, + "Fr202": 0.3, + "Fr202_m1": 0.29, + "Fr203": 0.55, + "Fr204": 1.7, + "Fr204_m1": 2.6, + "Fr204_m2": 1.0, + "Fr205": 3.8, + "Fr206": 16.0, + "Fr206_m1": 16.0, + "Fr206_m2": 0.7, + "Fr207": 14.8, + "Fr208": 59.1, + "Fr209": 50.0, + "Fr210": 190.8, + "Fr211": 186.0, + "Fr212": 1200.0, + "Fr213": 34.82, + "Fr214": 0.005, + "Fr214_m1": 0.00335, + "Fr215": 8.6e-08, + "Fr216": 7e-07, + "Fr217": 1.9e-05, + "Fr218": 0.001, + "Fr218_m1": 0.022, + "Fr219": 0.02, + "Fr220": 27.4, + "Fr221": 294.0, + "Fr222": 852.0, + "Fr223": 1320.0, + "Fr224": 199.8, + "Fr225": 237.0, + "Fr226": 49.0, + "Fr227": 148.2, + "Fr228": 38.0, + "Fr229": 50.2, + "Fr230": 19.1, + "Fr231": 17.6, + "Fr232": 5.5, + "Ra202": 0.0275, + "Ra203": 0.031, + "Ra203_m1": 0.025, + "Ra204": 0.0605, + "Ra205": 0.22, + "Ra205_m1": 0.18, + "Ra206": 0.24, + "Ra207": 1.3, + "Ra207_m1": 0.055, + "Ra208": 1.3, + "Ra209": 4.6, + "Ra210": 3.7, + "Ra211": 13.0, + "Ra212": 13.0, + "Ra213": 163.8, + "Ra213_m1": 0.0021, + "Ra214": 2.46, + "Ra215": 0.00155, + "Ra216": 1.82e-07, + "Ra217": 1.6e-06, + "Ra218": 2.52e-05, + "Ra219": 0.01, + "Ra220": 0.018, + "Ra221": 28.0, + "Ra222": 36.17, + "Ra223": 987552.0, + "Ra224": 316224.0, + "Ra225": 1287360.0, + "Ra226": 50492200000.0, + "Ra227": 2532.0, + "Ra228": 181456200.0, + "Ra229": 240.0, + "Ra230": 5580.0, + "Ra231": 103.0, + "Ra232": 252.0, + "Ra233": 30.0, + "Ra234": 30.0, + "Ac206": 0.024, + "Ac206_m1": 0.0395, + "Ac207": 0.027, + "Ac208": 0.095, + "Ac208_m1": 0.025, + "Ac209": 0.098, + "Ac210": 0.35, + "Ac211": 0.21, + "Ac212": 0.93, + "Ac213": 0.8, + "Ac214": 8.2, + "Ac215": 0.17, + "Ac216": 0.00044, + "Ac216_m1": 0.000441, + "Ac217": 6.9e-08, + "Ac218": 1.08e-06, + "Ac219": 1.18e-05, + "Ac220": 0.0264, + "Ac221": 0.052, + "Ac222": 5.0, + "Ac222_m1": 63.0, + "Ac223": 126.0, + "Ac224": 10008.0, + "Ac225": 864000.0, + "Ac226": 105732.0, + "Ac227": 687072100.0, + "Ac228": 22140.0, + "Ac229": 3762.0, + "Ac230": 122.0, + "Ac231": 450.0, + "Ac232": 119.0, + "Ac233": 145.0, + "Ac234": 44.0, + "Ac235": 60.0, + "Ac236": 120.0, + "Th209": 0.0065, + "Th210": 0.016, + "Th211": 0.05, + "Th212": 0.035, + "Th213": 0.14, + "Th214": 0.1, + "Th215": 1.2, + "Th216": 0.026, + "Th217": 0.000251, + "Th218": 1.17e-07, + "Th219": 1.05e-06, + "Th220": 9.7e-06, + "Th221": 0.00173, + "Th222": 0.002237, + "Th223": 0.6, + "Th224": 1.05, + "Th225": 523.2, + "Th226": 1834.2, + "Th227": 1613952.0, + "Th228": 60338130.0, + "Th229": 231633000000.0, + "Th230": 2378810000000.0, + "Th231": 91872.0, + "Th232": 4.43384e17, + "Th233": 1338.0, + "Th234": 2082240.0, + "Th235": 426.0, + "Th236": 2238.0, + "Th237": 282.0, + "Th238": 564.0, + "Pa212": 0.0051, + "Pa213": 0.0053, + "Pa214": 0.017, + "Pa215": 0.014, + "Pa216": 0.16, + "Pa217": 0.0036, + "Pa217_m1": 0.0012, + "Pa218": 0.000113, + "Pa219": 5.3e-08, + "Pa220": 7.8e-07, + "Pa221": 5.9e-06, + "Pa222": 0.0033, + "Pa223": 0.0051, + "Pa224": 0.79, + "Pa225": 1.7, + "Pa226": 108.0, + "Pa227": 2298.0, + "Pa228": 79200.0, + "Pa229": 129600.0, + "Pa230": 1503360.0, + "Pa231": 1033830000000.0, + "Pa232": 114048.0, + "Pa233": 2330640.0, + "Pa234": 24120.0, + "Pa234_m1": 69.54, + "Pa235": 1466.4, + "Pa236": 546.0, + "Pa237": 522.0, + "Pa238": 136.2, + "Pa239": 6480.0, + "Pa240": 120.0, + "U217": 0.0235, + "U218": 0.000545, + "U219": 4.2e-05, + "U220": 6e-08, + "U222": 1.3e-06, + "U223": 1.8e-05, + "U224": 0.0009, + "U225": 0.084, + "U226": 0.35, + "U227": 66.0, + "U228": 546.0, + "U229": 3480.0, + "U230": 1797120.0, + "U231": 362880.0, + "U232": 2174319000.0, + "U233": 5023970000000.0, + "U234": 7747390000000.0, + "U235": 2.22102e16, + "U235_m1": 1560.0, + "U236": 739079000000000.0, + "U237": 583200.0, + "U238": 1.40999e17, + "U239": 1407.0, + "U240": 50760.0, + "U241": 300.0, + "U242": 1008.0, + "Np225": 2e-06, + "Np226": 0.035, + "Np227": 0.51, + "Np228": 61.4, + "Np229": 240.0, + "Np230": 276.0, + "Np231": 2928.0, + "Np232": 882.0, + "Np233": 2172.0, + "Np234": 380160.0, + "Np235": 34231680.0, + "Np236": 4828310000000.0, + "Np236_m1": 81000.0, + "Np237": 67659500000000.0, + "Np238": 182908.8, + "Np239": 203558.4, + "Np240": 3714.0, + "Np240_m1": 433.2, + "Np241": 834.0, + "Np242": 132.0, + "Np242_m1": 330.0, + "Np243": 111.0, + "Np244": 137.4, + "Pu228": 1.85, + "Pu229": 112.0, + "Pu230": 102.0, + "Pu231": 516.0, + "Pu232": 2028.0, + "Pu233": 1254.0, + "Pu234": 31680.0, + "Pu235": 1518.0, + "Pu236": 90191620.0, + "Pu237": 3943296.0, + "Pu237_m1": 0.18, + "Pu238": 2767602000.0, + "Pu239": 760854000000.0, + "Pu240": 207049000000.0, + "Pu241": 450958100.0, + "Pu242": 11786800000000.0, + "Pu243": 17841.6, + "Pu244": 2559320000000000.0, + "Pu245": 37800.0, + "Pu246": 936576.0, + "Pu247": 196128.0, + "Am231": 10.0, + "Am232": 79.0, + "Am233": 192.0, + "Am234": 139.2, + "Am235": 618.0, + "Am236": 216.0, + "Am237": 4416.0, + "Am238": 5880.0, + "Am239": 42840.0, + "Am240": 182880.0, + "Am241": 13651800000.0, + "Am242": 57672.0, + "Am242_m1": 4449622000.0, + "Am242_m2": 0.014, + "Am243": 232580000000.0, + "Am244": 36360.0, + "Am244_m1": 1560.0, + "Am245": 7380.0, + "Am246": 2340.0, + "Am246_m1": 1500.0, + "Am247": 1380.0, + "Am248": 600.0, + "Am249": 120.0, + "Cm233": 17.7, + "Cm234": 51.0, + "Cm235": 300.0, + "Cm236": 1900.0, + "Cm237": 1200.0, + "Cm238": 8640.0, + "Cm239": 10440.0, + "Cm240": 2332800.0, + "Cm241": 2833920.0, + "Cm242": 14078020.0, + "Cm243": 918326200.0, + "Cm244": 571508100.0, + "Cm244_m1": 5e-07, + "Cm245": 268240000000.0, + "Cm246": 150214000000.0, + "Cm247": 492299000000000.0, + "Cm248": 10982000000000.0, + "Cm249": 3849.0, + "Cm250": 261928000000.0, + "Cm251": 1008.0, + "Bk235": 20.0, + "Bk237": 60.0, + "Bk238": 144.0, + "Bk240": 288.0, + "Bk241": 276.0, + "Bk242": 420.0, + "Bk243": 16200.0, + "Bk244": 15660.0, + "Bk245": 426816.0, + "Bk246": 155520.0, + "Bk247": 43549500000.0, + "Bk248": 283824000.0, + "Bk248_m1": 85320.0, + "Bk249": 27648000.0, + "Bk250": 11563.2, + "Bk251": 3336.0, + "Bk253": 600.0, + "Bk254": 120.0, + "Cf237": 2.1, + "Cf238": 0.021, + "Cf239": 51.5, + "Cf240": 57.6, + "Cf241": 226.8, + "Cf242": 222.0, + "Cf243": 642.0, + "Cf244": 1164.0, + "Cf245": 2700.0, + "Cf246": 128520.0, + "Cf247": 11196.0, + "Cf248": 28814400.0, + "Cf249": 11076700000.0, + "Cf250": 412773400.0, + "Cf251": 28338700000.0, + "Cf252": 83468070.0, + "Cf253": 1538784.0, + "Cf254": 5227200.0, + "Cf255": 5100.0, + "Cf256": 738.0, + "Es240": 1.0, + "Es241": 8.5, + "Es242": 13.5, + "Es243": 21.0, + "Es244": 37.0, + "Es245": 66.0, + "Es246": 462.0, + "Es247": 273.0, + "Es247_m1": 54000000.0, + "Es248": 1620.0, + "Es249": 6132.0, + "Es250": 30960.0, + "Es250_m1": 7992.0, + "Es251": 118800.0, + "Es252": 40754880.0, + "Es253": 1768608.0, + "Es254": 23820480.0, + "Es254_m1": 141479.9, + "Es255": 3438720.0, + "Es256": 1524.0, + "Es256_m1": 27360.0, + "Es257": 665280.0, + "Es258": 180.0, + "Fm242": 0.0008, + "Fm243": 0.2, + "Fm244": 0.0033, + "Fm245": 4.2, + "Fm246": 1.1, + "Fm247": 29.0, + "Fm248": 36.0, + "Fm249": 156.0, + "Fm250": 1800.0, + "Fm250_m1": 1.8, + "Fm251": 19080.0, + "Fm252": 91404.0, + "Fm253": 259200.0, + "Fm254": 11664.0, + "Fm255": 72252.0, + "Fm256": 9456.0, + "Fm257": 8683200.0, + "Fm258": 0.00037, + "Fm259": 1.5, + "Fm260": 0.004, + "Md245": 0.0009, + "Md245_m1": 0.39, + "Md246": 0.9, + "Md247": 1.12, + "Md247_m1": 0.26, + "Md248": 7.0, + "Md249": 24.0, + "Md249_m1": 1.9, + "Md250": 27.5, + "Md251": 240.0, + "Md252": 138.0, + "Md253": 630.0, + "Md254": 1680.0, + "Md254_m1": 1680.0, + "Md255": 1620.0, + "Md256": 4620.0, + "Md257": 19872.0, + "Md258": 4449600.0, + "Md258_m1": 3420.0, + "Md259": 5760.0, + "Md260": 2747520.0, + "Md261": 2400.0, + "No250": 4.35e-06, + "No251": 0.8, + "No251_m1": 1.02, + "No252": 2.44, + "No253": 97.2, + "No254": 51.0, + "No254_m1": 0.28, + "No255": 186.0, + "No256": 2.91, + "No257": 25.0, + "No258": 0.0012, + "No259": 3480.0, + "No260": 0.106, + "No261": 160000.0, + "No262": 0.005, + "Lr251": 1.341, + "Lr252": 0.38, + "Lr253": 0.575, + "Lr253_m1": 1.535, + "Lr254": 13.0, + "Lr255": 22.0, + "Lr255_m1": 2.53, + "Lr256": 27.0, + "Lr257": 0.646, + "Lr258": 4.1, + "Lr259": 6.2, + "Lr260": 180.0, + "Lr261": 2340.0, + "Lr262": 14400.0, + "Lr263": 18000.0, + "Rf253": 5.15e-05, + "Rf254": 2.3e-05, + "Rf255": 1.68, + "Rf256": 0.0064, + "Rf257": 4.7, + "Rf257_m1": 3.9, + "Rf258": 0.012, + "Rf259": 3.2, + "Rf260": 0.021, + "Rf261": 65.0, + "Rf261_m1": 81.0, + "Rf262": 2.3, + "Rf263": 600.0, + "Rf264": 3600.0, + "Rf265": 1.0, + "Db255": 1.7, + "Db256": 1.7, + "Db257": 1.52, + "Db257_m1": 0.78, + "Db258": 4.0, + "Db258_m1": 20.0, + "Db259": 0.51, + "Db260": 1.52, + "Db261": 1.8, + "Db262": 35.0, + "Db263": 28.5, + "Db264": 180.0, + "Db265": 900.0, + "Sg258": 0.0032, + "Sg259": 0.555, + "Sg260": 0.0036, + "Sg261": 0.23, + "Sg262": 0.0079, + "Sg263": 1.0, + "Sg263_m1": 0.12, + "Sg264": 0.045, + "Sg265": 8.0, + "Sg266": 25.0, + "Sg269": 50.0, + "Bh260": 0.0003, + "Bh261": 0.013, + "Bh262": 0.102, + "Bh262_m1": 0.022, + "Bh263": 0.0002, + "Bh264": 0.66, + "Bh265": 1.1, + "Bh266": 5.4, + "Bh267": 21.0, + "Bh269": 50.0, + "Hs263": 0.00355, + "Hs264": 0.0008, + "Hs265": 0.00205, + "Hs265_m1": 0.0003, + "Hs266": 0.00265, + "Hs267": 0.0545, + "Hs268": 1.2, + "Hs269": 12.9, + "Hs273": 50.0, + "Mt265": 120.0, + "Mt266": 0.0018, + "Mt266_m1": 0.0017, + "Mt267": 0.01, + "Mt268": 0.0225, + "Mt269": 0.05, + "Mt270": 0.00605, + "Mt271": 5.0, + "Mt273": 20.0, + "Ds267": 2.8e-06, + "Ds268": 0.0001, + "Ds269": 0.000268, + "Ds270": 0.00015, + "Ds270_m1": 0.009, + "Ds271": 0.001705, + "Ds271_m1": 0.0865, + "Ds272": 1.0, + "Ds273": 0.000225, + "Ds279_m1": 0.19, + "Rg272": 0.0041, +} + + # Values here are from the Committee on Data for Science and Technology # (CODATA) 2018 recommendation (https://physics.nist.gov/cuu/Constants/). diff --git a/openmc/material.py b/openmc/material.py index e5c3f8e4b..5952162f6 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -3,6 +3,7 @@ from collections.abc import Iterable from copy import deepcopy from numbers import Real from pathlib import Path +import math import re import warnings from xml.etree import ElementTree as ET @@ -705,6 +706,21 @@ class Material(IDManagerMixin): def make_isotropic_in_lab(self): self.isotropic = [x.name for x in self._nuclides] + + def get_activity(self): + """Returns the total activity of the material in Becquerels.""" + + atoms_per_barn_cm2 = self.get_nuclide_atom_densities() + total_activity = 0 + for key, value in atoms_per_barn_cm2.items(): + if key in openmc.data.HALF_LIFE.keys(): + atoms = value[1] * self.volume * 1e24 + activity = 0.693 * atoms / openmc.data.HALF_LIFE[key] + print('activity', activity) + total_activity += activity + + return total_activity + def get_elements(self): """Returns all elements in the material From 5bf60560afa3f7036a928395fd26bded949bfffb Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Wed, 8 Jun 2022 17:31:30 +0100 Subject: [PATCH 013/119] removed import math --- openmc/material.py | 1 - 1 file changed, 1 deletion(-) diff --git a/openmc/material.py b/openmc/material.py index 5952162f6..fc1fd1646 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -3,7 +3,6 @@ from collections.abc import Iterable from copy import deepcopy from numbers import Real from pathlib import Path -import math import re import warnings from xml.etree import ElementTree as ET From 47e242551d23a2285e3353b8a91b1efd91c66740 Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Wed, 8 Jun 2022 17:34:10 +0100 Subject: [PATCH 014/119] using math to get ln(2) --- openmc/material.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openmc/material.py b/openmc/material.py index fc1fd1646..b62ba4142 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -3,6 +3,7 @@ from collections.abc import Iterable from copy import deepcopy from numbers import Real from pathlib import Path +import math import re import warnings from xml.etree import ElementTree as ET @@ -714,7 +715,7 @@ class Material(IDManagerMixin): for key, value in atoms_per_barn_cm2.items(): if key in openmc.data.HALF_LIFE.keys(): atoms = value[1] * self.volume * 1e24 - activity = 0.693 * atoms / openmc.data.HALF_LIFE[key] + activity = math.log(2) * atoms / openmc.data.HALF_LIFE[key] print('activity', activity) total_activity += activity From a4661fdca84807af15e19f125f4db30bcbeaca98 Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Wed, 8 Jun 2022 17:39:40 +0100 Subject: [PATCH 015/119] [skip ci] removed print statement --- openmc/material.py | 1 - 1 file changed, 1 deletion(-) diff --git a/openmc/material.py b/openmc/material.py index b62ba4142..a9f5afac8 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -716,7 +716,6 @@ class Material(IDManagerMixin): if key in openmc.data.HALF_LIFE.keys(): atoms = value[1] * self.volume * 1e24 activity = math.log(2) * atoms / openmc.data.HALF_LIFE[key] - print('activity', activity) total_activity += activity return total_activity From 9dc84fdb1859c73886b1f7596f30d3f6b9fa2cc9 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Thu, 9 Jun 2022 01:17:46 -0500 Subject: [PATCH 016/119] Always normalize distributions when sampling. Adding normalization method for tabular. --- openmc/stats/univariate.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/openmc/stats/univariate.py b/openmc/stats/univariate.py index 120dc62b6..df1a72150 100644 --- a/openmc/stats/univariate.py +++ b/openmc/stats/univariate.py @@ -890,12 +890,17 @@ class Tabular(Univariate): c = np.zeros_like(self.x) x = np.asarray(self.x) p = np.asarray(self.p) + if self.interpolation == 'histogram': c[1:] = p[:-1] * np.diff(x) elif self.interpolation == 'linear-linear': c[1:] = 0.5 * (p[0:-1] + p[1:]) * np.diff(x) + return np.cumsum(c) + def normalize(self): + self.p = self.p / self.cdf().max() + def sample(self, n_samples=1, seed=None): if not self.interpolation in ('histogram', 'linear-linear'): raise NotImplementedError('Can only sample tabular distributions ' @@ -904,6 +909,9 @@ class Tabular(Univariate): np.random.seed(seed) xi = np.random.rand(n_samples) cdf = self.cdf() + cdf /= cdf.max() + # always use normalized probabilities when sampling + p = self.p / cdf.max() # get CDF bins that are above the # sampled values @@ -918,7 +926,7 @@ class Tabular(Univariate): # the random number is less than the next cdf # entry x_i = np.array([self.x[i] for i in cdf_idx]) - p_i = np.array([self.p[i] for i in cdf_idx]) + p_i = np.array([p[i] for i in cdf_idx]) # TODO: check that probability doesn't exceed the last value @@ -936,7 +944,7 @@ class Tabular(Univariate): # get variable and probability values for the # next entry x_i1 = np.array([self.x[i+1] for i in cdf_idx]) - p_i1 = np.array([self.p[i+1] for i in cdf_idx]) + p_i1 = np.array([p[i+1] for i in cdf_idx]) # compute slope between entries m = (p_i1 - p_i) / (x_i1 - x_i) # set values for zero slope @@ -944,9 +952,9 @@ class Tabular(Univariate): m[zero] = x_i[zero] + (xi[zero] - c_i[zero]) / p_i[zero] # set values for non-zero slope non_zero = ~zero - quad = np.power(p_i[non_zero], 2) + 2. * m[non_zero] * (xi[non_zero] - c_i[non_zero]) + quad = np.power(p_i[non_zero], 2) + 2.0 * m[non_zero] * (xi[non_zero] - c_i[non_zero]) quad[quad < 0.0] = 0.0 - m[non_zero] = x_i[non_zero] + (np.sqrt(quad) - p_i[non_zero]) / m[non_zero] + m[non_zero] = x_i[non_zero] + (np.sqrt(quad) - p_i[non_zero]) / m[non_zero] return m def to_xml_element(self, element_name): From 85b6566fd74c9c082ee943dd8d64a8138a119259 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Thu, 9 Jun 2022 01:18:17 -0500 Subject: [PATCH 017/119] Updating tabular means. Removing re-defined functions --- tests/unit_tests/test_stats.py | 174 +++++++++++++++++---------------- 1 file changed, 88 insertions(+), 86 deletions(-) diff --git a/tests/unit_tests/test_stats.py b/tests/unit_tests/test_stats.py index a3b5cfafb..f847970c0 100644 --- a/tests/unit_tests/test_stats.py +++ b/tests/unit_tests/test_stats.py @@ -26,6 +26,20 @@ def test_discrete(): assert d2.p == [1.0] assert len(d2) == 1 + vals = np.array([1.0, 2.0, 3.0]) + probs = np.array([0.1, 0.7, 0.2]) + + exp_mean = (vals * probs).sum() + + d3 = openmc.stats.Discrete(vals, probs) + + # sample discrete distribution + n_samples = 1_000_000 + samples = d3.sample(n_samples, seed=100) + # check that the mean of the samples is close to the true mean + assert samples.mean() == pytest.approx(exp_mean, rel=1e-02) + + def test_merge_discrete(): x1 = [0.0, 1.0, 10.0] @@ -65,9 +79,14 @@ def test_uniform(): assert t.p == [1/(b-a), 1/(b-a)] assert t.interpolation == 'histogram' + exp_mean = 0.5 * (a + b) + n_samples = 1_000_000 + samples = d.sample(n_samples, seed=100) + assert samples.mean() == pytest.approx(exp_mean, rel=1e-02) + def test_powerlaw(): - a, b, n = 10.0, 20.0, 2.0 + a, b, n = 10.0, 100.0, 2.0 d = openmc.stats.PowerLaw(a, b, n) elem = d.to_xml_element('distribution') @@ -77,6 +96,13 @@ def test_powerlaw(): assert d.n == n assert len(d) == 3 + exp_mean = 100.0 * (n+1) / (n+2) + + # sample power law distribution + n_samples = 1_000_000 + samples = d.sample(n_samples, seed=100) + assert samples.mean() == pytest.approx(exp_mean, rel=1e-02) + def test_maxwell(): theta = 1.2895e6 @@ -87,6 +113,14 @@ def test_maxwell(): assert d.theta == theta assert len(d) == 1 + exp_mean = 3/2 * theta + + # sample maxwell distribution + n_samples = 1_000_000 + samples = d.sample(n_samples, seed=100) + assert samples.mean() == pytest.approx(exp_mean, rel=1e-02) + + def test_watt(): a, b = 0.965e6, 2.29e-6 @@ -98,19 +132,68 @@ def test_watt(): assert d.b == b assert len(d) == 2 + d = openmc.stats.Watt(a, b) + + # mean value form adapted from + # "Prompt-fission-neutron average energy for 238U(n, f ) from + # threshold to 200 MeV" Ethvignot et. al. + # https://doi.org/10.1016/j.physletb.2003.09.048 + exp_mean = 3/2 * a + a**2 * b / 4 + + # sample Watt distribution + n_samples = 1_000_000 + samples = d.sample(n_samples, seed=100) + assert samples.mean() == pytest.approx(exp_mean, rel=1e-03) + def test_tabular(): - x = [0.0, 5.0, 7.0] - p = [0.1, 0.2, 0.05] + x = np.array([0.0, 5.0, 7.0]) + p = np.array([0.1, 0.2, 0.05]) d = openmc.stats.Tabular(x, p, 'linear-linear') elem = d.to_xml_element('distribution') d = openmc.stats.Tabular.from_xml_element(elem) - assert d.x == x - assert d.p == p + assert all(d.x == x) + assert all(d.p == p) assert d.interpolation == 'linear-linear' assert len(d) == len(x) + # test linear-lienar sampling + d = openmc.stats.Tabular(x, p) + + # compute the expected value (mean) of the + # piecewise pdf + mean = 0.0 + d.normalize() + for i in range(1, len(x)): + y_min = d.p[i-1] + y_max = d.p[i] + x_min = d.x[i-1] + x_max = d.x[i] + + m = (y_max - y_min) / (x_max - x_min) + + exp_val = (1./3.) * m * (x_max**3 - x_min**3) + exp_val += 0.5 * m * x_min * (x_min**2 - x_max**2) + exp_val += 0.5 * y_min * (x_max**2 - x_min**2) + + mean += exp_val + + n_samples = 100_000 + samples = d.sample(n_samples, seed=100) + assert samples.mean() == pytest.approx(mean, rel=1e-03) + + # test histogram sampling + d = openmc.stats.Tabular(x, p, interpolation='histogram') + d.normalize() + + mean = 0.5 * (x[:-1] + x[1:]) + mean *= np.diff(d.cdf()) + mean = sum(mean) + + samples = d.sample(n_samples, seed=100) + assert samples.mean() == pytest.approx(mean, rel=1e-03) + def test_legendre(): # Pu239 elastic scattering at 100 keV @@ -254,87 +337,6 @@ def test_point(): assert d.xyz == pytest.approx(p) -def test_discrete(): - - vals = np.array([1.0, 2.0, 3.0]) - probs = np.array([0.1, 0.7, 0.2]) - - exp_mean = (vals * probs).sum() - - d = openmc.stats.Discrete(vals, probs) - - # sample discrete distribution - n_samples = 1_000_000 - samples = d.sample(n_samples, seed=100) - # check that the mean of the samples is close to the true mean - assert samples.mean() == pytest.approx(exp_mean, rel=1e-02) - - -def test_uniform(): - - lower = 1.1 - upper = 23.3 - - exp_mean = 0.5 * (lower + upper) - - d = openmc.stats.Uniform(lower, upper) - - # sample the uniform distribution - n_samples = 1_000_000 - samples = d.sample(n_samples, seed=100) - assert samples.mean() == pytest.approx(exp_mean, rel=1e-02) - - -def test_power_law(): - - lower = 0.0 - upper = 1.0 - exponent = 2.0 - - d = openmc.stats.PowerLaw(lower, upper, exponent) - - exp_mean = (exponent + 1) / (exponent + 2) - - # sample power law distribution - n_samples = 1_000_000 - samples = d.sample(n_samples, seed=100) - assert samples.mean() == pytest.approx(exp_mean, rel=1e-02) - - -def test_maxwell(): - theta = 1000 - - exp_mean = 0 - - d = openmc.stats.Maxwell(theta) - - exp_mean = 3/2 * theta - - # sample maxwell distribution - n_samples = 1_000_000 - samples = d.sample(n_samples, seed=100) - assert samples.mean() == pytest.approx(exp_mean, rel=1e-02) - -def test_watt(): - - a = 10 - b = 20 - - d = openmc.stats.Watt(a, b) - - # mean value form adapted from - # "Prompt-fission-neutron average energy for 238U(n, f ) from - # threshold to 200 MeV" Ethvignot et. al. - # https://doi.org/10.1016/j.physletb.2003.09.048 - exp_mean = 3/2 * a + a**2 * b / 4 - - # sample Watt distribution - n_samples = 100_000 - samples = d.sample(n_samples, seed=100) - assert samples.mean() == pytest.approx(exp_mean, rel=1e-02) - - - def test_normal(): mean = 10.0 std_dev = 2.0 From 1e83df9dc1d6709cfcb181fb818f6e7e28bb85d0 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Thu, 9 Jun 2022 01:20:30 -0500 Subject: [PATCH 018/119] Removing re-defined distribution --- tests/unit_tests/test_stats.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/unit_tests/test_stats.py b/tests/unit_tests/test_stats.py index f847970c0..8e38a7b48 100644 --- a/tests/unit_tests/test_stats.py +++ b/tests/unit_tests/test_stats.py @@ -132,8 +132,6 @@ def test_watt(): assert d.b == b assert len(d) == 2 - d = openmc.stats.Watt(a, b) - # mean value form adapted from # "Prompt-fission-neutron average energy for 238U(n, f ) from # threshold to 200 MeV" Ethvignot et. al. From e1fd9959bc3aeb9d69005d5e5e971d11b441850f Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Thu, 9 Jun 2022 08:00:17 -0500 Subject: [PATCH 019/119] A little cleanup --- openmc/stats/univariate.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openmc/stats/univariate.py b/openmc/stats/univariate.py index df1a72150..d733b6193 100644 --- a/openmc/stats/univariate.py +++ b/openmc/stats/univariate.py @@ -566,7 +566,7 @@ class Watt(Univariate): w = Maxwell.sample_maxwell(self.a, n_samples) u = np.random.uniform(-1., 1., n_samples) aab = self.a * self.a * self.b - return w + 0.25*aab + u * np.sqrt(aab*w) + return w + 0.25*aab + u*np.sqrt(aab*w) def to_xml_element(self, element_name): """Return XML representation of the Watt distribution @@ -769,7 +769,7 @@ class Muir(Univariate): return np.sqrt(4.*self.e0*self.kt/self.m_rat) def sample(self, n_samples=1, seed=None): - # https://permalink.lanl.gov/object/tr?what=info:lanl-repo/lareport/LA-05411-MS + # Based on LANL report LA-05411-MS np.random.seed(seed) return np.random.normal(self.e0, self.std_dev, n_samples) @@ -899,7 +899,7 @@ class Tabular(Univariate): return np.cumsum(c) def normalize(self): - self.p = self.p / self.cdf().max() + self.p = np.asarray(self.p) / self.cdf().max() def sample(self, n_samples=1, seed=None): if not self.interpolation in ('histogram', 'linear-linear'): From 1234e0b17c4443b5602eda59125945fab610412b Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Thu, 9 Jun 2022 14:59:28 +0100 Subject: [PATCH 020/119] review suggestions from @PaulRomano --- openmc/data/data.py | 3602 +---------------------------- openmc/data/half_life.json | 3563 ++++++++++++++++++++++++++++ openmc/material.py | 36 +- tests/unit_tests/test_material.py | 18 + 4 files changed, 3636 insertions(+), 3583 deletions(-) create mode 100644 openmc/data/half_life.json diff --git a/openmc/data/data.py b/openmc/data/data.py index 48a98dedd..65702f7a5 100644 --- a/openmc/data/data.py +++ b/openmc/data/data.py @@ -1,10 +1,10 @@ import itertools -from math import sqrt +import json import os import re +from math import sqrt from warnings import warn - # Isotopic abundances from Meija J, Coplen T B, et al, "Isotopic compositions # of the elements 2013 (IUPAC Technical Report)", Pure. Appl. Chem. 88 (3), # pp. 293-306 (2013). The "representative isotopic abundance" values from @@ -177,3571 +177,6 @@ ATOMIC_SYMBOL = {0: 'n', 1: 'H', 2: 'He', 3: 'Li', 4: 'Be', 5: 'B', 6: 'C', 118: 'Og'} ATOMIC_NUMBER = {value: key for key, value in ATOMIC_SYMBOL.items()} -# Half life values are from ENDF/B VII.1 and have units of seconds -HALF_LIFE = { - "H3": 388789600.0, - "H4": 9.90652e-23, - "H5": 7.99473e-23, - "H6": 2.84812e-22, - "H7": 2.3e-23, - "He5": 7.595e-22, - "He6": 0.8067, - "He7": 3.038e-21, - "He8": 0.1191, - "He9": 7e-21, - "He10": 1.519e-21, - "Li4": 7.55721e-23, - "Li5": 3.06868e-22, - "Li8": 0.838, - "Li9": 0.1783, - "Li10": 2e-21, - "Li11": 0.00859, - "Li12": 1e-08, - "Be5": 1e-09, - "Be6": 4.95326e-21, - "Be8": 8.18132e-17, - "Be10": 47652000000000.0, - "Be11": 13.81, - "Be12": 0.0213, - "Be13": 2.7e-21, - "Be14": 0.00435, - "Be15": 2e-07, - "Be16": 2e-07, - "B6": 1e-09, - "B7": 3.255e-22, - "B8": 0.77, - "B9": 8.43888e-19, - "B12": 0.0202, - "B13": 0.01736, - "B14": 0.0125, - "B15": 0.00993, - "B16": 1.9e-10, - "B17": 0.00508, - "B18": 2.6e-08, - "B19": 0.00292, - "C8": 1.9813e-21, - "C9": 0.1265, - "C10": 19.29, - "C11": 1223.1, - "C14": 179878000000.0, - "C15": 2.449, - "C16": 0.747, - "C17": 0.193, - "C18": 0.092, - "C19": 0.049, - "C20": 0.0145, - "C21": 3e-08, - "C22": 0.0062, - "N10": 2e-22, - "N11": 3.12742e-22, - "N12": 0.011, - "N13": 597.9, - "N16": 7.13, - "N17": 4.171, - "N18": 0.624, - "N19": 0.271, - "N20": 0.13, - "N21": 0.085, - "N22": 0.024, - "N23": 0.0145, - "N24": 5.2e-08, - "N25": 2.6e-07, - "O12": 1.13925e-21, - "O13": 0.00858, - "O14": 70.606, - "O15": 122.24, - "O19": 26.88, - "O20": 13.51, - "O21": 3.42, - "O22": 2.25, - "O23": 0.0905, - "O24": 0.065, - "O25": 5e-08, - "O26": 4e-08, - "O27": 2.6e-07, - "O28": 1e-07, - "F14": 5.0007e-22, - "F15": 4.557e-22, - "F16": 1.13925e-20, - "F17": 64.49, - "F18": 6586.2, - "F20": 11.163, - "F21": 4.158, - "F22": 4.23, - "F23": 2.23, - "F24": 0.39, - "F25": 0.05, - "F26": 0.0096, - "F27": 0.005, - "F28": 4e-08, - "F29": 0.0025, - "F30": 2.6e-07, - "F31": 2.5e-07, - "Ne16": 3.73524e-21, - "Ne17": 0.1092, - "Ne18": 1.672, - "Ne19": 17.22, - "Ne23": 37.24, - "Ne24": 202.8, - "Ne25": 0.602, - "Ne26": 0.197, - "Ne27": 0.032, - "Ne28": 0.0189, - "Ne29": 0.0148, - "Ne30": 0.0073, - "Ne31": 0.0034, - "Ne32": 0.0035, - "Ne33": 1.8e-07, - "Ne34": 6e-08, - "Na18": 1.3e-21, - "Na19": 4e-08, - "Na20": 0.4479, - "Na21": 22.49, - "Na22": 82134970.0, - "Na24": 53989.2, - "Na24_m1": 0.02018, - "Na25": 59.1, - "Na26": 1.077, - "Na27": 0.301, - "Na28": 0.0305, - "Na29": 0.0449, - "Na30": 0.048, - "Na31": 0.017, - "Na32": 0.0132, - "Na33": 0.008, - "Na34": 0.0055, - "Na35": 0.0015, - "Na36": 1.8e-07, - "Na37": 6e-08, - "Mg19": 4e-12, - "Mg20": 0.0908, - "Mg21": 0.122, - "Mg22": 3.8755, - "Mg23": 11.317, - "Mg27": 567.48, - "Mg28": 75294.0, - "Mg29": 1.3, - "Mg30": 0.335, - "Mg31": 0.232, - "Mg32": 0.086, - "Mg33": 0.0905, - "Mg34": 0.02, - "Mg35": 0.07, - "Mg36": 0.0039, - "Mg37": 2.6e-07, - "Mg38": 2.6e-07, - "Mg39": 1.8e-07, - "Mg40": 1.7e-07, - "Al21": 3.5e-08, - "Al22": 0.059, - "Al23": 0.47, - "Al24": 2.053, - "Al24_m1": 0.13, - "Al25": 7.183, - "Al26": 22626800000000.0, - "Al26_m1": 6.3452, - "Al28": 134.484, - "Al29": 393.6, - "Al30": 3.62, - "Al31": 0.644, - "Al32": 0.033, - "Al33": 0.0417, - "Al34": 0.042, - "Al35": 0.0386, - "Al36": 0.09, - "Al37": 0.0107, - "Al38": 0.0076, - "Al39": 7.6e-06, - "Al40": 2.6e-07, - "Al41": 2.6e-07, - "Al42": 1.7e-07, - "Si22": 0.029, - "Si23": 0.0423, - "Si24": 0.14, - "Si25": 0.22, - "Si26": 2.234, - "Si27": 4.16, - "Si31": 9438.0, - "Si32": 4828310000.0, - "Si33": 6.11, - "Si34": 2.77, - "Si35": 0.78, - "Si36": 0.45, - "Si37": 0.09, - "Si38": 1e-06, - "Si39": 0.0475, - "Si40": 0.033, - "Si41": 0.02, - "Si42": 0.0125, - "Si43": 6e-08, - "Si44": 3.6e-07, - "P24": 0.0074, - "P25": 3e-08, - "P26": 0.0437, - "P27": 0.26, - "P28": 0.2703, - "P29": 4.142, - "P30": 149.88, - "P32": 1232323.0, - "P33": 2189376.0, - "P34": 12.43, - "P35": 47.3, - "P36": 5.6, - "P37": 2.31, - "P38": 0.64, - "P39": 0.28, - "P40": 0.125, - "P41": 0.1, - "P42": 0.0485, - "P43": 0.0365, - "P44": 0.0185, - "P45": 2e-07, - "P46": 2e-07, - "S26": 0.01, - "S27": 0.0155, - "S28": 0.125, - "S29": 0.187, - "S30": 1.178, - "S31": 2.572, - "S35": 7560864.0, - "S37": 303.0, - "S38": 10218.0, - "S39": 11.5, - "S40": 8.8, - "S41": 1.99, - "S42": 1.013, - "S43": 0.28, - "S44": 0.1, - "S45": 0.068, - "S46": 0.05, - "S48": 2e-07, - "S49": 2e-07, - "Cl28": 0.0017, - "Cl29": 2e-08, - "Cl30": 3e-08, - "Cl31": 0.15, - "Cl32": 0.298, - "Cl33": 2.511, - "Cl34": 1.5264, - "Cl34_m1": 1920.0, - "Cl36": 9498840000000.0, - "Cl38": 2233.8, - "Cl38_m1": 0.715, - "Cl39": 3336.0, - "Cl40": 81.0, - "Cl41": 38.4, - "Cl42": 6.8, - "Cl43": 3.13, - "Cl44": 0.56, - "Cl45": 0.413, - "Cl46": 0.232, - "Cl47": 0.101, - "Cl48": 2e-07, - "Cl49": 1.7e-07, - "Cl50": 0.02, - "Cl51": 2e-07, - "Ar30": 2e-08, - "Ar31": 0.0151, - "Ar32": 0.098, - "Ar33": 0.173, - "Ar34": 0.8445, - "Ar35": 1.775, - "Ar37": 3027456.0, - "Ar39": 8488990000.0, - "Ar41": 6576.6, - "Ar42": 1038250000.0, - "Ar43": 322.2, - "Ar44": 712.2, - "Ar45": 21.48, - "Ar46": 8.4, - "Ar47": 1.23, - "Ar48": 0.475, - "Ar49": 0.17, - "Ar50": 0.085, - "Ar51": 2e-07, - "Ar52": 0.01, - "Ar53": 0.003, - "K32": 0.0033, - "K33": 2.5e-08, - "K34": 2.5e-08, - "K35": 0.178, - "K36": 0.342, - "K37": 1.226, - "K38": 458.16, - "K38_m1": 0.924, - "K40": 3.93839e16, - "K42": 44496.0, - "K43": 80280.0, - "K44": 1327.8, - "K45": 1068.6, - "K46": 105.0, - "K47": 17.5, - "K48": 6.8, - "K49": 1.26, - "K50": 0.472, - "K51": 0.365, - "K52": 0.105, - "K53": 0.03, - "K54": 0.01, - "K55": 0.003, - "Ca34": 3.5e-08, - "Ca35": 0.0257, - "Ca36": 0.102, - "Ca37": 0.1811, - "Ca38": 0.44, - "Ca39": 0.8596, - "Ca41": 3218880000000.0, - "Ca45": 14049500.0, - "Ca47": 391910.4, - "Ca48": 7.25824e26, - "Ca49": 523.08, - "Ca50": 13.9, - "Ca51": 10.0, - "Ca52": 4.6, - "Ca53": 0.09, - "Ca54": 0.086, - "Ca55": 0.022, - "Ca56": 0.01, - "Ca57": 0.005, - "Sc36": 0.0088, - "Sc37": 0.056, - "Sc38": 0.0423, - "Sc39": 3e-07, - "Sc40": 0.1823, - "Sc41": 0.5963, - "Sc42": 0.6808, - "Sc42_m1": 62.0, - "Sc43": 14007.6, - "Sc44": 14292.0, - "Sc44_m1": 210996.0, - "Sc45_m1": 0.318, - "Sc46": 7239456.0, - "Sc46_m1": 18.75, - "Sc47": 289370.9, - "Sc48": 157212.0, - "Sc49": 3430.8, - "Sc50": 102.5, - "Sc50_m1": 0.35, - "Sc51": 12.4, - "Sc52": 8.2, - "Sc53": 3.0, - "Sc54": 0.36, - "Sc55": 0.105, - "Sc56": 0.06, - "Sc57": 0.013, - "Sc58": 0.012, - "Sc59": 0.01, - "Sc60": 0.003, - "Ti38": 1.2e-07, - "Ti39": 0.032, - "Ti40": 0.0533, - "Ti41": 0.0804, - "Ti42": 0.199, - "Ti43": 0.509, - "Ti44": 1893460000.0, - "Ti45": 11088.0, - "Ti51": 345.6, - "Ti52": 102.0, - "Ti53": 32.7, - "Ti54": 1.5, - "Ti55": 1.3, - "Ti56": 0.2, - "Ti57": 0.06, - "Ti58": 0.059, - "Ti59": 0.03, - "Ti60": 0.022, - "Ti61": 3e-07, - "Ti62": 0.01, - "Ti63": 0.003, - "V40": 0.0077, - "V41": 0.0244, - "V42": 5.5e-08, - "V43": 0.8, - "V44": 0.111, - "V44_m1": 0.15, - "V45": 0.547, - "V46": 0.4225, - "V46_m1": 0.00102, - "V47": 1956.0, - "V48": 1380110.0, - "V49": 28512000.0, - "V50": 4.41806e24, - "V52": 224.58, - "V53": 92.58, - "V54": 49.8, - "V55": 6.54, - "V56": 0.216, - "V57": 0.35, - "V58": 0.185, - "V59": 0.075, - "V60": 0.068, - "V61": 0.047, - "V62": 1.5e-07, - "V63": 0.017, - "V64": 0.019, - "V65": 0.01, - "Cr42": 0.014, - "Cr43": 0.0216, - "Cr44": 0.0535, - "Cr45": 0.0609, - "Cr46": 0.26, - "Cr47": 0.5, - "Cr48": 77616.0, - "Cr49": 2538.0, - "Cr51": 2393366.0, - "Cr55": 209.82, - "Cr56": 356.4, - "Cr57": 21.1, - "Cr58": 7.0, - "Cr59": 0.46, - "Cr60": 0.49, - "Cr61": 0.27, - "Cr62": 0.19, - "Cr63": 0.129, - "Cr64": 0.043, - "Cr65": 0.027, - "Cr66": 0.01, - "Cr67": 0.05, - "Mn44": 1.05e-07, - "Mn45": 7e-08, - "Mn46": 0.0345, - "Mn47": 0.1, - "Mn48": 0.1581, - "Mn49": 0.382, - "Mn50": 0.28319, - "Mn50_m1": 105.0, - "Mn51": 2772.0, - "Mn52": 483062.4, - "Mn52_m1": 1266.0, - "Mn53": 116763000000000.0, - "Mn54": 26961120.0, - "Mn56": 9284.04, - "Mn57": 85.4, - "Mn58": 3.0, - "Mn58_m1": 65.4, - "Mn59": 4.59, - "Mn60": 51.0, - "Mn60_m1": 1.77, - "Mn61": 0.67, - "Mn62": 0.671, - "Mn62_m1": 0.092, - "Mn63": 0.29, - "Mn64": 0.09, - "Mn65": 0.092, - "Mn66": 0.064, - "Mn67": 0.047, - "Mn68": 0.028, - "Mn69": 0.014, - "Fe45": 0.00203, - "Fe46": 0.013, - "Fe47": 0.0219, - "Fe48": 0.044, - "Fe49": 0.0647, - "Fe50": 0.155, - "Fe51": 0.305, - "Fe52": 29790.0, - "Fe52_m1": 45.9, - "Fe53": 510.6, - "Fe53_m1": 152.4, - "Fe55": 86594050.0, - "Fe59": 3844368.0, - "Fe60": 47336400000000.0, - "Fe61": 358.8, - "Fe62": 68.0, - "Fe63": 6.1, - "Fe64": 2.0, - "Fe65": 0.81, - "Fe65_m1": 1.12, - "Fe66": 0.44, - "Fe67": 0.416, - "Fe68": 0.187, - "Fe69": 0.109, - "Fe70": 0.094, - "Fe71": 0.028, - "Fe72": 1.5e-07, - "Co49": 3.5e-08, - "Co50": 0.044, - "Co51": 2e-07, - "Co52": 0.115, - "Co53": 0.24, - "Co53_m1": 0.247, - "Co54": 0.19328, - "Co54_m1": 88.8, - "Co55": 63108.0, - "Co56": 6672931.0, - "Co57": 23478340.0, - "Co58": 6122304.0, - "Co58_m1": 32760.0, - "Co60": 166344200.0, - "Co60_m1": 628.02, - "Co61": 5940.0, - "Co62": 90.0, - "Co62_m1": 834.6, - "Co63": 27.4, - "Co64": 0.3, - "Co65": 1.16, - "Co66": 0.2, - "Co67": 0.425, - "Co68": 0.199, - "Co68_m1": 1.6, - "Co69": 0.22, - "Co70": 0.119, - "Co70_m1": 0.5, - "Co71": 0.079, - "Co72": 0.0599, - "Co73": 0.041, - "Co74": 0.03, - "Co75": 0.034, - "Ni48": 0.0021, - "Ni49": 0.0075, - "Ni50": 0.012, - "Ni51": 2e-07, - "Ni52": 0.038, - "Ni53": 0.045, - "Ni54": 0.104, - "Ni55": 0.2047, - "Ni56": 524880.0, - "Ni57": 128160.0, - "Ni59": 2398380000000.0, - "Ni63": 3193630000.0, - "Ni65": 9061.884, - "Ni66": 196560.0, - "Ni67": 21.0, - "Ni68": 29.0, - "Ni69": 11.4, - "Ni69_m1": 3.5, - "Ni70": 6.0, - "Ni71": 2.56, - "Ni72": 1.57, - "Ni73": 0.84, - "Ni74": 0.68, - "Ni75": 0.6, - "Ni76": 0.238, - "Ni77": 0.061, - "Ni78": 0.11, - "Cu52": 0.0069, - "Cu53": 3e-07, - "Cu54": 7.5e-08, - "Cu55": 0.04, - "Cu56": 0.094, - "Cu57": 0.1963, - "Cu58": 3.204, - "Cu59": 81.5, - "Cu60": 1422.0, - "Cu61": 11998.8, - "Cu62": 580.38, - "Cu64": 45723.6, - "Cu66": 307.2, - "Cu67": 222588.0, - "Cu68": 31.1, - "Cu68_m1": 225.0, - "Cu69": 171.0, - "Cu70": 44.5, - "Cu70_m1": 33.0, - "Cu70_m2": 6.6, - "Cu71": 19.5, - "Cu72": 6.63, - "Cu73": 4.2, - "Cu74": 1.75, - "Cu75": 1.224, - "Cu76": 0.653, - "Cu76_m1": 1.27, - "Cu77": 0.469, - "Cu78": 0.335, - "Cu79": 0.188, - "Cu80": 0.17, - "Cu81": 0.028, - "Zn54": 0.0037, - "Zn55": 0.02, - "Zn56": 5e-07, - "Zn57": 0.038, - "Zn58": 0.084, - "Zn59": 0.182, - "Zn60": 142.8, - "Zn61": 89.1, - "Zn61_m1": 0.43, - "Zn61_m2": 0.14, - "Zn62": 33336.0, - "Zn63": 2308.2, - "Zn65": 21075550.0, - "Zn69": 3384.0, - "Zn69_m1": 49536.0, - "Zn71": 147.0, - "Zn71_m1": 14256.0, - "Zn72": 167400.0, - "Zn73": 23.5, - "Zn73_m1": 5.8, - "Zn73_m2": 0.013, - "Zn74": 95.6, - "Zn75": 10.2, - "Zn76": 5.7, - "Zn77": 2.08, - "Zn77_m1": 1.05, - "Zn78": 1.47, - "Zn79": 0.995, - "Zn80": 0.54, - "Zn81": 0.32, - "Zn82": 0.052, - "Zn83": 0.043, - "Ga56": 0.0059, - "Ga57": 0.0123, - "Ga58": 0.0152, - "Ga59": 0.0418, - "Ga60": 0.07, - "Ga61": 0.168, - "Ga62": 0.11612, - "Ga63": 32.4, - "Ga64": 157.62, - "Ga65": 912.0, - "Ga66": 34164.0, - "Ga67": 281810.9, - "Ga68": 4062.6, - "Ga70": 1268.4, - "Ga72": 50760.0, - "Ga72_m1": 0.03968, - "Ga73": 17496.0, - "Ga74": 487.2, - "Ga74_m1": 9.5, - "Ga75": 126.0, - "Ga76": 32.6, - "Ga77": 13.2, - "Ga78": 5.09, - "Ga79": 2.847, - "Ga80": 1.676, - "Ga81": 1.217, - "Ga82": 0.599, - "Ga83": 0.3081, - "Ga84": 0.085, - "Ga85": 0.048, - "Ga86": 0.029, - "Ge58": 0.0152, - "Ge59": 0.0418, - "Ge60": 0.03, - "Ge61": 0.039, - "Ge62": 1.5e-07, - "Ge63": 0.142, - "Ge64": 63.7, - "Ge65": 30.9, - "Ge66": 8136.0, - "Ge67": 1134.0, - "Ge68": 23410080.0, - "Ge69": 140580.0, - "Ge71": 987552.0, - "Ge71_m1": 0.02041, - "Ge73_m1": 0.499, - "Ge75": 4966.8, - "Ge75_m1": 47.7, - "Ge77": 40680.0, - "Ge77_m1": 52.9, - "Ge78": 5280.0, - "Ge79": 18.98, - "Ge79_m1": 39.0, - "Ge80": 29.5, - "Ge81": 7.6, - "Ge81_m1": 7.6, - "Ge82": 4.56, - "Ge83": 1.85, - "Ge84": 0.954, - "Ge85": 0.535, - "Ge86": 0.095, - "Ge87": 0.14, - "Ge88": 0.066, - "Ge89": 0.039, - "As60": 0.0083, - "As61": 0.0166, - "As62": 0.0259, - "As63": 0.0921, - "As64": 0.036, - "As65": 0.128, - "As66": 0.09579, - "As67": 42.5, - "As68": 151.6, - "As69": 913.8, - "As70": 3156.0, - "As71": 235080.0, - "As72": 93600.0, - "As73": 6937920.0, - "As74": 1535328.0, - "As75_m1": 0.01762, - "As76": 94464.0, - "As77": 139788.0, - "As78": 5442.0, - "As79": 540.6, - "As80": 15.2, - "As81": 33.3, - "As82": 19.1, - "As82_m1": 13.6, - "As83": 13.4, - "As84": 4.2, - "As85": 2.021, - "As86": 0.945, - "As87": 0.56, - "As88": 0.112, - "As89": 0.059, - "As90": 0.043, - "As91": 0.044, - "As92": 0.027, - "Se65": 0.05, - "Se66": 0.033, - "Se67": 0.136, - "Se68": 35.5, - "Se69": 27.4, - "Se70": 2466.0, - "Se71": 284.4, - "Se72": 725760.0, - "Se73": 25740.0, - "Se73_m1": 2388.0, - "Se75": 10349860.0, - "Se77_m1": 17.36, - "Se79": 9309490000000.0, - "Se79_m1": 235.2, - "Se81": 1107.0, - "Se81_m1": 3436.8, - "Se83": 1338.0, - "Se83_m1": 70.1, - "Se84": 195.6, - "Se85": 31.7, - "Se86": 14.3, - "Se87": 5.5, - "Se88": 1.53, - "Se89": 0.41, - "Se90": 0.161, - "Se91": 0.27, - "Se92": 0.093, - "Se93": 0.062, - "Se94": 0.059, - "Br67": 0.0443, - "Br68": 1.2e-06, - "Br69": 2.4e-08, - "Br70": 0.0791, - "Br70_m1": 2.2, - "Br71": 21.4, - "Br72": 78.6, - "Br72_m1": 10.6, - "Br73": 204.0, - "Br74": 1524.0, - "Br74_m1": 2760.0, - "Br75": 5802.0, - "Br76": 58320.0, - "Br76_m1": 1.31, - "Br77": 205329.6, - "Br77_m1": 256.8, - "Br78": 387.0, - "Br79_m1": 4.86, - "Br80": 1060.8, - "Br80_m1": 15913.8, - "Br82": 127015.2, - "Br82_m1": 367.8, - "Br83": 8640.0, - "Br84": 1905.6, - "Br84_m1": 360.0, - "Br85": 174.0, - "Br86": 55.0, - "Br87": 55.65, - "Br88": 16.29, - "Br89": 4.4, - "Br90": 1.92, - "Br91": 0.541, - "Br92": 0.343, - "Br93": 0.102, - "Br94": 0.07, - "Br95": 0.066, - "Br96": 0.042, - "Br97": 0.04, - "Kr69": 0.032, - "Kr70": 0.052, - "Kr71": 0.1, - "Kr72": 17.1, - "Kr73": 27.3, - "Kr74": 690.0, - "Kr75": 257.4, - "Kr76": 53280.0, - "Kr77": 4464.0, - "Kr79": 126144.0, - "Kr79_m1": 50.0, - "Kr81": 7226690000000.0, - "Kr81_m1": 13.1, - "Kr83_m1": 6588.0, - "Kr85": 339433500.0, - "Kr85_m1": 16128.0, - "Kr87": 4578.0, - "Kr88": 10224.0, - "Kr89": 189.0, - "Kr90": 32.32, - "Kr91": 8.57, - "Kr92": 1.84, - "Kr93": 1.286, - "Kr94": 0.212, - "Kr95": 0.114, - "Kr96": 0.08, - "Kr97": 0.063, - "Kr98": 0.046, - "Kr99": 0.027, - "Kr100": 0.007, - "Rb71": 1e-09, - "Rb72": 1.2e-06, - "Rb73": 3e-08, - "Rb74": 0.064776, - "Rb75": 19.0, - "Rb76": 36.5, - "Rb77": 226.2, - "Rb78": 1059.6, - "Rb78_m1": 344.4, - "Rb79": 1374.0, - "Rb80": 34.0, - "Rb81": 16459.2, - "Rb81_m1": 1830.0, - "Rb82": 75.45, - "Rb82_m1": 23299.2, - "Rb83": 7447680.0, - "Rb84": 2835648.0, - "Rb84_m1": 1215.6, - "Rb86": 1609718.0, - "Rb86_m1": 61.02, - "Rb87": 1.51792e18, - "Rb88": 1066.38, - "Rb89": 909.0, - "Rb90": 158.0, - "Rb90_m1": 258.0, - "Rb91": 58.4, - "Rb92": 4.492, - "Rb93": 5.84, - "Rb94": 2.702, - "Rb95": 0.3777, - "Rb96": 0.203, - "Rb97": 0.1691, - "Rb98": 0.114, - "Rb98_m1": 0.096, - "Rb99": 0.054, - "Rb100": 0.051, - "Rb101": 0.032, - "Rb102": 0.037, - "Sr73": 0.025, - "Sr74": 1.2e-06, - "Sr75": 0.088, - "Sr76": 7.89, - "Sr77": 9.0, - "Sr78": 150.0, - "Sr79": 135.0, - "Sr80": 6378.0, - "Sr81": 1338.0, - "Sr82": 2190240.0, - "Sr83": 116676.0, - "Sr83_m1": 4.95, - "Sr85": 5602176.0, - "Sr85_m1": 4057.8, - "Sr87_m1": 10134.0, - "Sr89": 4365792.0, - "Sr90": 908543300.0, - "Sr91": 34668.0, - "Sr92": 9756.0, - "Sr93": 445.38, - "Sr94": 75.3, - "Sr95": 23.9, - "Sr96": 1.07, - "Sr97": 0.429, - "Sr98": 0.653, - "Sr99": 0.27, - "Sr100": 0.202, - "Sr101": 0.118, - "Sr102": 0.069, - "Sr103": 0.068, - "Sr104": 0.043, - "Sr105": 0.0556, - "Y76": 2e-07, - "Y77": 0.062, - "Y78": 0.05, - "Y78_m1": 5.7, - "Y79": 14.8, - "Y80": 30.1, - "Y80_m1": 4.8, - "Y81": 70.4, - "Y82": 8.3, - "Y83": 424.8, - "Y83_m1": 171.0, - "Y84": 2370.0, - "Y84_m1": 4.6, - "Y85": 9648.0, - "Y85_m1": 17496.0, - "Y86": 53064.0, - "Y86_m1": 2880.0, - "Y87": 287280.0, - "Y87_m1": 48132.0, - "Y88": 9212486.0, - "Y88_m1": 0.000301, - "Y88_m2": 0.01397, - "Y89_m1": 15.663, - "Y90": 230400.0, - "Y90_m1": 11484.0, - "Y91": 5055264.0, - "Y91_m1": 2982.6, - "Y92": 12744.0, - "Y93": 36648.0, - "Y93_m1": 0.82, - "Y94": 1122.0, - "Y95": 618.0, - "Y96": 5.34, - "Y96_m1": 9.6, - "Y97": 3.75, - "Y97_m1": 1.17, - "Y97_m2": 0.142, - "Y98": 0.548, - "Y98_m1": 2.0, - "Y99": 1.47, - "Y100": 0.735, - "Y100_m1": 0.94, - "Y101": 0.45, - "Y102": 0.36, - "Y102_m1": 0.298, - "Y103": 0.23, - "Y104": 0.18, - "Y105": 0.088, - "Y106": 0.066, - "Y107": 0.03, - "Y108": 0.048, - "Zr78": 2e-07, - "Zr79": 0.056, - "Zr80": 4.6, - "Zr81": 5.5, - "Zr82": 32.0, - "Zr83": 41.6, - "Zr84": 1554.0, - "Zr85": 471.6, - "Zr85_m1": 10.9, - "Zr86": 59400.0, - "Zr87": 6048.0, - "Zr87_m1": 14.0, - "Zr88": 7205760.0, - "Zr89": 282276.0, - "Zr89_m1": 249.66, - "Zr90_m1": 0.8092, - "Zr93": 48283100000000.0, - "Zr95": 5532365.0, - "Zr96": 6.31152e26, - "Zr97": 60296.4, - "Zr98": 30.7, - "Zr99": 2.1, - "Zr100": 7.1, - "Zr101": 2.3, - "Zr102": 2.9, - "Zr103": 1.3, - "Zr104": 1.2, - "Zr105": 0.6, - "Zr106": 0.27, - "Zr107": 0.15, - "Zr108": 0.08, - "Zr109": 0.117, - "Zr110": 0.098, - "Nb81": 0.8, - "Nb82": 0.05, - "Nb83": 4.1, - "Nb84": 9.8, - "Nb85": 20.9, - "Nb85_m1": 3.3, - "Nb86": 88.0, - "Nb87": 225.0, - "Nb87_m1": 156.0, - "Nb88": 873.0, - "Nb88_m1": 466.8, - "Nb89": 7308.0, - "Nb89_m1": 3960.0, - "Nb90": 52560.0, - "Nb90_m1": 18.81, - "Nb90_m2": 0.00619, - "Nb91": 21459200000.0, - "Nb91_m1": 5258304.0, - "Nb92": 1095050000000000.0, - "Nb92_m1": 876960.0, - "Nb93_m1": 509024100.0, - "Nb94": 640619000000.0, - "Nb94_m1": 375.78, - "Nb95": 3023222.0, - "Nb95_m1": 311904.0, - "Nb96": 84060.0, - "Nb97": 4326.0, - "Nb97_m1": 58.7, - "Nb98": 2.86, - "Nb98_m1": 3078.0, - "Nb99": 15.0, - "Nb99_m1": 150.0, - "Nb100": 1.5, - "Nb100_m1": 2.99, - "Nb101": 7.1, - "Nb102": 4.3, - "Nb102_m1": 1.3, - "Nb103": 1.5, - "Nb104": 4.9, - "Nb104_m1": 0.94, - "Nb105": 2.95, - "Nb106": 0.93, - "Nb107": 0.3, - "Nb108": 0.193, - "Nb109": 0.19, - "Nb110": 0.17, - "Nb111": 0.08, - "Nb112": 0.069, - "Nb113": 0.03, - "Mo83": 0.0195, - "Mo84": 3.8, - "Mo85": 3.2, - "Mo86": 19.6, - "Mo87": 14.02, - "Mo88": 480.0, - "Mo89": 126.6, - "Mo89_m1": 0.19, - "Mo90": 20412.0, - "Mo91": 929.4, - "Mo91_m1": 64.6, - "Mo93": 126230000000.0, - "Mo93_m1": 24660.0, - "Mo99": 237513.6, - "Mo100": 2.3037e26, - "Mo101": 876.6, - "Mo102": 678.0, - "Mo103": 67.5, - "Mo104": 60.0, - "Mo105": 35.6, - "Mo106": 8.73, - "Mo107": 3.5, - "Mo108": 1.09, - "Mo109": 0.53, - "Mo110": 0.3, - "Mo111": 0.2, - "Mo112": 0.287, - "Mo113": 0.1, - "Mo114": 0.08, - "Mo115": 0.092, - "Tc85": 0.5, - "Tc86": 0.054, - "Tc86_m1": 1.1e-06, - "Tc87": 2.2, - "Tc88": 5.8, - "Tc88_m1": 6.4, - "Tc89": 12.8, - "Tc89_m1": 12.9, - "Tc90": 8.7, - "Tc90_m1": 49.2, - "Tc91": 188.4, - "Tc91_m1": 198.0, - "Tc92": 255.0, - "Tc93": 9900.0, - "Tc93_m1": 2610.0, - "Tc94": 17580.0, - "Tc94_m1": 3120.0, - "Tc95": 72000.0, - "Tc95_m1": 5270400.0, - "Tc96": 369792.0, - "Tc96_m1": 3090.0, - "Tc97": 132857000000000.0, - "Tc97_m1": 7862400.0, - "Tc98": 132542000000000.0, - "Tc99": 6661810000000.0, - "Tc99_m1": 21624.12, - "Tc100": 15.46, - "Tc101": 852.0, - "Tc102": 5.28, - "Tc102_m1": 261.0, - "Tc103": 54.2, - "Tc104": 1098.0, - "Tc105": 456.0, - "Tc106": 35.6, - "Tc107": 21.2, - "Tc108": 5.17, - "Tc109": 0.86, - "Tc110": 0.92, - "Tc111": 0.29, - "Tc112": 0.28, - "Tc113": 0.16, - "Tc114": 0.15, - "Tc115": 0.073, - "Tc116": 0.09, - "Tc117": 0.04, - "Tc118": 0.066, - "Ru87": 1.5e-06, - "Ru88": 1.25, - "Ru89": 1.5, - "Ru90": 11.7, - "Ru91": 7.9, - "Ru91_m1": 7.6, - "Ru92": 219.0, - "Ru93": 59.7, - "Ru93_m1": 10.8, - "Ru94": 3108.0, - "Ru95": 5914.8, - "Ru97": 244512.0, - "Ru103": 3390941.0, - "Ru103_m1": 0.00169, - "Ru105": 15984.0, - "Ru106": 32123520.0, - "Ru107": 225.0, - "Ru108": 273.0, - "Ru109": 34.5, - "Ru110": 11.6, - "Ru111": 2.12, - "Ru112": 1.75, - "Ru113": 0.8, - "Ru113_m1": 0.51, - "Ru114": 0.52, - "Ru115": 0.74, - "Ru116": 0.204, - "Ru117": 0.142, - "Ru118": 0.123, - "Ru119": 0.162, - "Ru120": 0.149, - "Rh89": 1.5e-06, - "Rh90": 0.0145, - "Rh90_m1": 1.05, - "Rh91": 1.47, - "Rh92": 4.66, - "Rh93": 11.9, - "Rh94": 70.6, - "Rh94_m1": 25.8, - "Rh95": 301.2, - "Rh95_m1": 117.6, - "Rh96": 594.0, - "Rh96_m1": 90.6, - "Rh97": 1842.0, - "Rh97_m1": 2772.0, - "Rh98": 523.2, - "Rh98_m1": 216.0, - "Rh99": 1391040.0, - "Rh99_m1": 16920.0, - "Rh100": 74880.0, - "Rh100_m1": 276.0, - "Rh101": 104140100.0, - "Rh101_m1": 374976.0, - "Rh102": 17910720.0, - "Rh102_m1": 118088500.0, - "Rh103_m1": 3366.84, - "Rh104": 42.3, - "Rh104_m1": 260.4, - "Rh105": 127296.0, - "Rh105_m1": 40.0, - "Rh106": 30.07, - "Rh106_m1": 7860.0, - "Rh107": 1302.0, - "Rh108": 16.8, - "Rh108_m1": 360.0, - "Rh109": 80.0, - "Rh110": 3.2, - "Rh110_m1": 28.5, - "Rh111": 11.0, - "Rh112": 2.1, - "Rh112_m1": 6.73, - "Rh113": 2.8, - "Rh114": 1.85, - "Rh115": 0.99, - "Rh116": 0.68, - "Rh116_m1": 0.57, - "Rh117": 0.44, - "Rh118": 0.266, - "Rh119": 0.171, - "Rh120": 0.136, - "Rh121": 0.151, - "Rh122": 0.108, - "Rh123": 0.0489, - "Pd91": 1e-06, - "Pd92": 0.8, - "Pd93": 1.3, - "Pd94": 9.0, - "Pd95": 10.0, - "Pd95_m1": 13.3, - "Pd96": 122.0, - "Pd97": 186.0, - "Pd98": 1062.0, - "Pd99": 1284.0, - "Pd100": 313632.0, - "Pd101": 30492.0, - "Pd103": 1468022.0, - "Pd107": 205124000000000.0, - "Pd107_m1": 21.3, - "Pd109": 49324.32, - "Pd109_m1": 281.4, - "Pd111": 1404.0, - "Pd111_m1": 19800.0, - "Pd112": 75708.0, - "Pd113": 93.0, - "Pd113_m1": 0.3, - "Pd114": 145.2, - "Pd115": 25.0, - "Pd115_m1": 50.0, - "Pd116": 11.8, - "Pd117": 4.3, - "Pd117_m1": 0.0191, - "Pd118": 1.9, - "Pd119": 0.92, - "Pd120": 0.5, - "Pd121": 0.285, - "Pd122": 0.175, - "Pd123": 0.244, - "Pd124": 0.038, - "Pd125": 0.3987, - "Pd126": 0.2499, - "Ag93": 1.5e-06, - "Ag94": 0.035, - "Ag94_m1": 0.55, - "Ag94_m2": 0.4, - "Ag95": 2.0, - "Ag95_m1": 0.5, - "Ag95_m2": 0.016, - "Ag95_m3": 0.04, - "Ag96": 4.4, - "Ag96_m1": 6.9, - "Ag97": 25.5, - "Ag98": 47.5, - "Ag99": 124.0, - "Ag99_m1": 10.5, - "Ag100": 120.6, - "Ag100_m1": 134.4, - "Ag101": 666.0, - "Ag101_m1": 3.1, - "Ag102": 774.0, - "Ag102_m1": 462.0, - "Ag103": 3942.0, - "Ag103_m1": 5.7, - "Ag104": 4152.0, - "Ag104_m1": 2010.0, - "Ag105": 3567456.0, - "Ag105_m1": 433.8, - "Ag106": 1437.6, - "Ag106_m1": 715392.0, - "Ag107_m1": 44.3, - "Ag108": 142.92, - "Ag108_m1": 13822200000.0, - "Ag109_m1": 39.6, - "Ag110": 24.6, - "Ag110_m1": 21579260.0, - "Ag111": 643680.0, - "Ag111_m1": 64.8, - "Ag112": 11268.0, - "Ag113": 19332.0, - "Ag113_m1": 68.7, - "Ag114": 4.6, - "Ag114_m1": 0.0015, - "Ag115": 1200.0, - "Ag115_m1": 18.0, - "Ag116": 237.0, - "Ag116_m1": 20.0, - "Ag116_m2": 9.3, - "Ag117": 72.8, - "Ag117_m1": 5.34, - "Ag118": 3.76, - "Ag118_m1": 2.0, - "Ag119": 2.1, - "Ag119_m1": 6.0, - "Ag120": 1.23, - "Ag120_m1": 0.32, - "Ag121": 0.78, - "Ag122": 0.529, - "Ag122_m1": 0.2, - "Ag123": 0.3, - "Ag124": 0.172, - "Ag125": 0.166, - "Ag126": 0.107, - "Ag127": 0.109, - "Ag128": 0.058, - "Ag129": 0.046, - "Ag130": 0.05, - "Cd95": 0.005, - "Cd96": 1.0, - "Cd97": 2.8, - "Cd98": 9.2, - "Cd99": 16.0, - "Cd100": 49.1, - "Cd101": 81.6, - "Cd102": 330.0, - "Cd103": 438.0, - "Cd104": 3462.0, - "Cd105": 3330.0, - "Cd107": 23400.0, - "Cd109": 39864960.0, - "Cd111_m1": 2912.4, - "Cd113": 2.53723e23, - "Cd113_m1": 444962200.0, - "Cd115": 192456.0, - "Cd115_m1": 3849984.0, - "Cd116": 9.78286e26, - "Cd117": 8964.0, - "Cd117_m1": 12096.0, - "Cd118": 3018.0, - "Cd119": 161.4, - "Cd119_m1": 132.0, - "Cd120": 50.8, - "Cd121": 13.5, - "Cd121_m1": 8.3, - "Cd122": 5.24, - "Cd123": 2.1, - "Cd123_m1": 1.82, - "Cd124": 1.25, - "Cd125": 0.68, - "Cd125_m1": 0.48, - "Cd126": 0.515, - "Cd127": 0.37, - "Cd128": 0.28, - "Cd129": 0.27, - "Cd130": 0.162, - "Cd131": 0.068, - "Cd132": 0.097, - "In97": 0.005, - "In98": 0.0425, - "In98_m1": 1.6, - "In99": 3.05, - "In100": 5.9, - "In101": 15.1, - "In102": 23.3, - "In103": 65.0, - "In103_m1": 34.0, - "In104": 108.0, - "In104_m1": 15.7, - "In105": 304.2, - "In105_m1": 48.0, - "In106": 372.0, - "In106_m1": 312.0, - "In107": 1944.0, - "In107_m1": 50.4, - "In108": 3480.0, - "In108_m1": 2376.0, - "In109": 15001.2, - "In109_m1": 80.4, - "In109_m2": 0.209, - "In110": 17640.0, - "In110_m1": 4146.0, - "In111": 242326.1, - "In111_m1": 462.0, - "In112": 898.2, - "In112_m1": 1233.6, - "In113_m1": 5968.56, - "In114": 71.9, - "In114_m1": 4277664.0, - "In114_m2": 0.0431, - "In115": 1.39169e22, - "In115_m1": 16149.6, - "In116": 14.1, - "In116_m1": 3257.4, - "In116_m2": 2.18, - "In117": 2592.0, - "In117_m1": 6972.0, - "In118": 5.0, - "In118_m1": 267.0, - "In118_m2": 8.5, - "In119": 144.0, - "In119_m1": 1080.0, - "In120": 3.08, - "In120_m1": 46.2, - "In120_m2": 47.3, - "In121": 23.1, - "In121_m1": 232.8, - "In122": 1.5, - "In122_m1": 10.3, - "In122_m2": 10.8, - "In123": 6.17, - "In123_m1": 47.4, - "In124": 3.12, - "In124_m1": 3.7, - "In125": 2.36, - "In125_m1": 12.2, - "In126": 1.53, - "In126_m1": 1.64, - "In127": 1.09, - "In127_m1": 3.67, - "In128": 0.84, - "In128_m1": 0.72, - "In129": 0.61, - "In129_m1": 1.23, - "In130": 0.29, - "In130_m1": 0.54, - "In130_m2": 0.54, - "In131": 0.28, - "In131_m1": 0.35, - "In131_m2": 0.32, - "In132": 0.207, - "In133": 0.165, - "In133_m1": 0.18, - "In134": 0.14, - "In135": 0.092, - "Sn99": 0.005, - "Sn100": 0.86, - "Sn101": 1.7, - "Sn102": 4.5, - "Sn103": 7.0, - "Sn104": 20.8, - "Sn105": 34.0, - "Sn106": 115.0, - "Sn107": 174.0, - "Sn108": 618.0, - "Sn109": 1080.0, - "Sn110": 14796.0, - "Sn111": 2118.0, - "Sn113": 9943776.0, - "Sn113_m1": 1284.0, - "Sn117_m1": 1175040.0, - "Sn119_m1": 25315200.0, - "Sn121": 97308.0, - "Sn121_m1": 1385380000.0, - "Sn123": 11162880.0, - "Sn123_m1": 2403.6, - "Sn125": 832896.0, - "Sn125_m1": 571.2, - "Sn126": 7258250000000.0, - "Sn127": 7560.0, - "Sn127_m1": 247.8, - "Sn128": 3544.2, - "Sn128_m1": 6.5, - "Sn129": 133.8, - "Sn129_m1": 414.0, - "Sn130": 223.2, - "Sn130_m1": 102.0, - "Sn131": 56.0, - "Sn131_m1": 58.4, - "Sn132": 39.7, - "Sn133": 1.46, - "Sn134": 1.05, - "Sn135": 0.53, - "Sn136": 0.25, - "Sn137": 0.19, - "Sb103": 1.5e-06, - "Sb104": 0.46, - "Sb105": 1.22, - "Sb106": 0.6, - "Sb107": 4.0, - "Sb108": 7.4, - "Sb109": 17.0, - "Sb110": 23.0, - "Sb111": 75.0, - "Sb112": 51.4, - "Sb113": 400.2, - "Sb114": 209.4, - "Sb115": 1926.0, - "Sb116": 948.0, - "Sb116_m1": 3618.0, - "Sb117": 10080.0, - "Sb118": 216.0, - "Sb118_m1": 18000.0, - "Sb119": 137484.0, - "Sb119_m1": 0.85, - "Sb120": 953.4, - "Sb120_m1": 497664.0, - "Sb122": 235336.3, - "Sb122_m1": 251.46, - "Sb124": 5201280.0, - "Sb124_m1": 93.0, - "Sb124_m2": 1212.0, - "Sb125": 87053530.0, - "Sb126": 1067040.0, - "Sb126_m1": 1149.0, - "Sb126_m2": 11.0, - "Sb127": 332640.0, - "Sb128": 32436.0, - "Sb128_m1": 624.0, - "Sb129": 15840.0, - "Sb129_m1": 1062.0, - "Sb130": 2370.0, - "Sb130_m1": 378.0, - "Sb131": 1381.8, - "Sb132": 167.4, - "Sb132_m1": 246.0, - "Sb133": 150.0, - "Sb134": 0.78, - "Sb134_m1": 10.07, - "Sb135": 1.679, - "Sb136": 0.923, - "Sb137": 0.45, - "Sb138": 0.168, - "Sb139": 0.127, - "Te105": 6.2e-07, - "Te106": 6e-05, - "Te107": 0.0031, - "Te108": 2.1, - "Te109": 4.6, - "Te110": 18.6, - "Te111": 19.3, - "Te112": 120.0, - "Te113": 102.0, - "Te114": 912.0, - "Te115": 348.0, - "Te115_m1": 402.0, - "Te116": 8964.0, - "Te117": 3720.0, - "Te117_m1": 0.103, - "Te118": 518400.0, - "Te119": 57780.0, - "Te119_m1": 406080.0, - "Te121": 1656288.0, - "Te121_m1": 14186880.0, - "Te123_m1": 10298880.0, - "Te125_m1": 4959360.0, - "Te127": 33660.0, - "Te127_m1": 9417600.0, - "Te128": 2.77707e26, - "Te129": 4176.0, - "Te129_m1": 2903040.0, - "Te131": 1500.0, - "Te131_m1": 119700.0, - "Te132": 276825.6, - "Te133": 750.0, - "Te133_m1": 3324.0, - "Te134": 2508.0, - "Te135": 19.0, - "Te136": 17.5, - "Te137": 2.49, - "Te138": 1.4, - "Te139": 0.347, - "Te140": 0.304, - "Te141": 0.213, - "Te142": 0.2, - "I108": 0.036, - "I109": 0.000103, - "I110": 0.65, - "I111": 2.5, - "I112": 3.42, - "I113": 6.6, - "I114": 2.1, - "I114_m1": 6.2, - "I115": 78.0, - "I116": 2.91, - "I117": 133.2, - "I118": 822.0, - "I118_m1": 510.0, - "I119": 1146.0, - "I120": 4896.0, - "I120_m1": 3180.0, - "I121": 7632.0, - "I122": 217.8, - "I123": 47604.24, - "I124": 360806.4, - "I125": 5132160.0, - "I126": 1117152.0, - "I128": 1499.4, - "I129": 495454000000000.0, - "I130": 44496.0, - "I130_m1": 530.4, - "I131": 693377.3, - "I132": 8262.0, - "I132_m1": 4993.2, - "I133": 74880.0, - "I133_m1": 9.0, - "I134": 3150.0, - "I134_m1": 211.2, - "I135": 23652.0, - "I136": 83.4, - "I136_m1": 46.9, - "I137": 24.5, - "I138": 6.23, - "I139": 2.28, - "I140": 0.86, - "I141": 0.43, - "I142": 0.222, - "I143": 0.296, - "I144": 0.194, - "I145": 0.127, - "Xe110": 0.093, - "Xe111": 0.81, - "Xe112": 2.7, - "Xe113": 2.74, - "Xe114": 10.0, - "Xe115": 18.0, - "Xe116": 59.0, - "Xe117": 61.0, - "Xe118": 228.0, - "Xe119": 348.0, - "Xe120": 2400.0, - "Xe121": 2406.0, - "Xe122": 72360.0, - "Xe123": 7488.0, - "Xe125": 60840.0, - "Xe125_m1": 56.9, - "Xe127": 3144960.0, - "Xe127_m1": 69.2, - "Xe129_m1": 767232.0, - "Xe131_m1": 1022976.0, - "Xe132_m1": 0.00839, - "Xe133": 452995.2, - "Xe133_m1": 189216.0, - "Xe134_m1": 0.29, - "Xe135": 32904.0, - "Xe135_m1": 917.4, - "Xe137": 229.08, - "Xe138": 844.8, - "Xe139": 39.68, - "Xe140": 13.6, - "Xe141": 1.73, - "Xe142": 1.23, - "Xe143": 0.3, - "Xe144": 1.15, - "Xe145": 0.188, - "Xe146": 0.369, - "Xe147": 0.1, - "Cs112": 0.0005, - "Cs113": 1.67e-05, - "Cs114": 0.57, - "Cs115": 1.4, - "Cs116": 0.7, - "Cs116_m1": 3.85, - "Cs117": 8.4, - "Cs117_m1": 6.5, - "Cs118": 14.0, - "Cs118_m1": 17.0, - "Cs119": 43.0, - "Cs119_m1": 30.4, - "Cs120": 61.3, - "Cs120_m1": 57.0, - "Cs121": 155.0, - "Cs121_m1": 122.0, - "Cs122": 21.18, - "Cs122_m1": 0.36, - "Cs122_m2": 222.0, - "Cs123": 352.8, - "Cs123_m1": 1.64, - "Cs124": 30.8, - "Cs124_m1": 6.3, - "Cs125": 2802.0, - "Cs125_m1": 0.0009, - "Cs126": 98.4, - "Cs127": 22500.0, - "Cs128": 217.2, - "Cs129": 115416.0, - "Cs130": 1752.6, - "Cs130_m1": 207.6, - "Cs131": 837129.6, - "Cs132": 559872.0, - "Cs134": 65172760.0, - "Cs134_m1": 10483.2, - "Cs135": 72582500000000.0, - "Cs135_m1": 3180.0, - "Cs136": 1137024.0, - "Cs136_m1": 19.0, - "Cs137": 949252600.0, - "Cs138": 2004.6, - "Cs138_m1": 174.6, - "Cs139": 556.2, - "Cs140": 63.7, - "Cs141": 24.84, - "Cs142": 1.684, - "Cs143": 1.791, - "Cs144": 0.994, - "Cs144_m1": 1.0, - "Cs145": 0.587, - "Cs146": 0.321, - "Cs147": 0.23, - "Cs148": 0.146, - "Cs149": 0.05, - "Cs150": 0.05, - "Cs151": 0.05, - "Ba114": 0.43, - "Ba115": 0.45, - "Ba116": 1.3, - "Ba117": 1.75, - "Ba118": 5.5, - "Ba119": 5.4, - "Ba120": 24.0, - "Ba121": 29.7, - "Ba122": 117.0, - "Ba123": 162.0, - "Ba124": 660.0, - "Ba125": 210.0, - "Ba126": 6000.0, - "Ba127": 762.0, - "Ba127_m1": 1.9, - "Ba128": 209952.0, - "Ba129": 8028.0, - "Ba129_m1": 7776.0, - "Ba130_m1": 0.0094, - "Ba131": 993600.0, - "Ba131_m1": 876.0, - "Ba133": 331862400.0, - "Ba133_m1": 140040.0, - "Ba135_m1": 103320.0, - "Ba136_m1": 0.3084, - "Ba137_m1": 153.12, - "Ba139": 4983.6, - "Ba140": 1101833.0, - "Ba141": 1096.2, - "Ba142": 636.0, - "Ba143": 14.5, - "Ba144": 11.5, - "Ba145": 4.31, - "Ba146": 2.22, - "Ba147": 0.894, - "Ba148": 0.612, - "Ba149": 0.344, - "Ba150": 0.3, - "Ba151": 0.259, - "Ba152": 0.228, - "Ba153": 0.158, - "La117": 0.0235, - "La117_m1": 0.01, - "La118": 1.0, - "La119": 2.0, - "La120": 2.8, - "La121": 5.3, - "La122": 8.6, - "La123": 17.0, - "La124": 29.21, - "La124_m1": 21.0, - "La125": 64.8, - "La125_m1": 0.4, - "La126": 54.0, - "La126_m1": 50.0, - "La127": 306.0, - "La127_m1": 222.0, - "La128": 310.8, - "La128_m1": 60.0, - "La129": 696.0, - "La129_m1": 0.56, - "La130": 522.0, - "La131": 3540.0, - "La132": 17280.0, - "La132_m1": 1458.0, - "La133": 14083.2, - "La134": 387.0, - "La135": 70200.0, - "La136": 592.2, - "La136_m1": 0.114, - "La137": 1893460000000.0, - "La138": 3.21888e18, - "La140": 145026.7, - "La141": 14112.0, - "La142": 5466.0, - "La143": 852.0, - "La144": 40.8, - "La145": 24.8, - "La146": 6.27, - "La146_m1": 10.0, - "La147": 4.06, - "La148": 1.26, - "La149": 1.05, - "La150": 0.86, - "La151": 0.778, - "La152": 0.451, - "La153": 0.342, - "La154": 0.228, - "La155": 0.184, - "Ce119": 0.2, - "Ce120": 0.25, - "Ce121": 1.1, - "Ce122": 2.73, - "Ce123": 3.8, - "Ce124": 6.0, - "Ce125": 10.2, - "Ce126": 51.0, - "Ce127": 31.0, - "Ce127_m1": 28.6, - "Ce128": 235.8, - "Ce129": 210.0, - "Ce130": 1374.0, - "Ce131": 618.0, - "Ce131_m1": 324.0, - "Ce132": 12636.0, - "Ce132_m1": 0.0094, - "Ce133": 5820.0, - "Ce133_m1": 17640.0, - "Ce134": 273024.0, - "Ce135": 63720.0, - "Ce135_m1": 20.0, - "Ce137": 32400.0, - "Ce137_m1": 123840.0, - "Ce138_m1": 0.00865, - "Ce139": 11892180.0, - "Ce139_m1": 54.8, - "Ce141": 2808691.0, - "Ce143": 118940.4, - "Ce144": 24616220.0, - "Ce145": 180.6, - "Ce146": 811.2, - "Ce147": 56.4, - "Ce148": 56.0, - "Ce149": 5.3, - "Ce150": 4.0, - "Ce151": 1.76, - "Ce152": 1.4, - "Ce153": 0.979, - "Ce154": 0.775, - "Ce155": 0.471, - "Ce156": 0.369, - "Ce157": 0.2428, - "Pr121": 1.4, - "Pr122": 0.5, - "Pr123": 0.8, - "Pr124": 1.2, - "Pr125": 3.3, - "Pr126": 3.14, - "Pr127": 4.2, - "Pr128": 2.85, - "Pr129": 32.0, - "Pr130": 40.0, - "Pr131": 90.6, - "Pr131_m1": 5.73, - "Pr132": 96.0, - "Pr133": 390.0, - "Pr134": 1020.0, - "Pr134_m1": 660.0, - "Pr135": 1440.0, - "Pr136": 786.0, - "Pr137": 4608.0, - "Pr138": 87.0, - "Pr138_m1": 7632.0, - "Pr139": 15876.0, - "Pr140": 203.4, - "Pr142": 68832.0, - "Pr142_m1": 876.0, - "Pr143": 1172448.0, - "Pr144": 1036.8, - "Pr144_m1": 432.0, - "Pr145": 21542.4, - "Pr146": 1449.0, - "Pr147": 804.0, - "Pr148": 137.4, - "Pr148_m1": 120.6, - "Pr149": 135.6, - "Pr150": 6.19, - "Pr151": 18.9, - "Pr152": 3.63, - "Pr153": 4.28, - "Pr154": 2.3, - "Pr155": 0.852, - "Pr156": 0.733, - "Pr157": 0.598, - "Pr158": 0.1342, - "Pr159": 0.1055, - "Nd124": 0.5, - "Nd125": 0.6, - "Nd126": 2e-07, - "Nd127": 1.8, - "Nd128": 5.0, - "Nd129": 4.9, - "Nd130": 21.0, - "Nd131": 26.0, - "Nd132": 94.0, - "Nd133": 70.0, - "Nd133_m1": 70.0, - "Nd134": 510.0, - "Nd135": 744.0, - "Nd135_m1": 330.0, - "Nd136": 3039.0, - "Nd137": 2310.0, - "Nd137_m1": 1.6, - "Nd138": 18144.0, - "Nd139": 1782.0, - "Nd139_m1": 19800.0, - "Nd140": 291168.0, - "Nd141": 8964.0, - "Nd141_m1": 62.0, - "Nd144": 7.22669e22, - "Nd147": 948672.0, - "Nd149": 6220.8, - "Nd150": 2.49305e26, - "Nd151": 746.4, - "Nd152": 684.0, - "Nd153": 31.6, - "Nd154": 25.9, - "Nd155": 8.9, - "Nd156": 5.49, - "Nd157": 1.906, - "Nd158": 1.331, - "Nd159": 0.773, - "Nd160": 0.5883, - "Nd161": 0.4884, - "Pm126": 0.5, - "Pm127": 1.0, - "Pm128": 1.0, - "Pm129": 2.4, - "Pm130": 2.6, - "Pm131": 6.3, - "Pm132": 6.2, - "Pm133": 15.0, - "Pm133_m1": 8.8, - "Pm134": 5.0, - "Pm134_m1": 22.0, - "Pm135": 49.0, - "Pm135_m1": 45.0, - "Pm136": 47.0, - "Pm136_m1": 107.0, - "Pm137": 144.0, - "Pm138": 10.0, - "Pm138_m1": 194.4, - "Pm139": 249.0, - "Pm139_m1": 0.18, - "Pm140": 357.0, - "Pm140_m1": 357.0, - "Pm141": 1254.0, - "Pm142": 40.5, - "Pm142_m1": 0.002, - "Pm143": 22896000.0, - "Pm144": 31363200.0, - "Pm145": 558569500.0, - "Pm146": 174513500.0, - "Pm147": 82788210.0, - "Pm148": 463795.2, - "Pm148_m1": 3567456.0, - "Pm149": 191088.0, - "Pm150": 9648.0, - "Pm151": 102240.0, - "Pm152": 247.2, - "Pm152_m1": 451.2, - "Pm152_m2": 828.0, - "Pm153": 315.0, - "Pm154": 103.8, - "Pm154_m1": 160.8, - "Pm155": 41.5, - "Pm156": 26.7, - "Pm157": 10.56, - "Pm158": 4.8, - "Pm159": 1.47, - "Pm160": 1.561, - "Pm161": 1.065, - "Pm162": 0.2679, - "Pm163": 0.2, - "Sm128": 0.5, - "Sm129": 0.55, - "Sm130": 1.0, - "Sm131": 1.2, - "Sm132": 4.0, - "Sm133": 3.7, - "Sm134": 9.5, - "Sm135": 10.3, - "Sm136": 47.0, - "Sm137": 45.0, - "Sm138": 186.0, - "Sm139": 154.2, - "Sm139_m1": 10.7, - "Sm140": 889.2, - "Sm141": 612.0, - "Sm141_m1": 1356.0, - "Sm142": 4349.4, - "Sm143": 525.0, - "Sm143_m1": 66.0, - "Sm143_m2": 0.03, - "Sm145": 29376000.0, - "Sm146": 3250430000000000.0, - "Sm147": 3.34511e18, - "Sm148": 2.20903e23, - "Sm151": 2840184000.0, - "Sm153": 167400.0, - "Sm153_m1": 0.0106, - "Sm155": 1338.0, - "Sm156": 33840.0, - "Sm157": 482.0, - "Sm158": 318.0, - "Sm159": 11.37, - "Sm160": 9.6, - "Sm161": 4.8, - "Sm162": 2.4, - "Sm163": 1.748, - "Sm164": 1.226, - "Sm165": 0.764, - "Eu130": 0.001, - "Eu131": 0.0178, - "Eu132": 0.1, - "Eu133": 1.0, - "Eu134": 0.5, - "Eu135": 1.5, - "Eu136": 3.8, - "Eu136_m1": 3.3, - "Eu136_m2": 3.8, - "Eu137": 11.0, - "Eu138": 12.1, - "Eu139": 17.9, - "Eu140": 1.51, - "Eu140_m1": 0.125, - "Eu141": 40.7, - "Eu141_m1": 2.7, - "Eu142": 2.34, - "Eu142_m1": 73.38, - "Eu143": 155.4, - "Eu144": 10.2, - "Eu145": 512352.0, - "Eu146": 396576.0, - "Eu147": 2082240.0, - "Eu148": 4708800.0, - "Eu149": 8043840.0, - "Eu150": 1164480000.0, - "Eu150_m1": 46080.0, - "Eu152": 427195200.0, - "Eu152_m1": 33521.76, - "Eu152_m2": 5760.0, - "Eu154": 271426900.0, - "Eu154_m1": 2760.0, - "Eu155": 149993300.0, - "Eu156": 1312416.0, - "Eu157": 54648.0, - "Eu158": 2754.0, - "Eu159": 1086.0, - "Eu160": 38.0, - "Eu161": 26.0, - "Eu162": 10.6, - "Eu163": 7.7, - "Eu164": 2.844, - "Eu165": 2.3, - "Eu166": 0.4, - "Eu167": 0.2, - "Gd134": 0.4, - "Gd135": 1.1, - "Gd136": 2e-05, - "Gd137": 2.2, - "Gd138": 4.7, - "Gd139": 5.8, - "Gd139_m1": 4.8, - "Gd140": 15.8, - "Gd141": 14.0, - "Gd141_m1": 24.5, - "Gd142": 70.2, - "Gd143": 39.0, - "Gd143_m1": 110.0, - "Gd144": 268.2, - "Gd145": 1380.0, - "Gd145_m1": 85.0, - "Gd146": 4170528.0, - "Gd147": 137016.0, - "Gd148": 2354197000.0, - "Gd149": 801792.0, - "Gd150": 56488100000000.0, - "Gd151": 10713600.0, - "Gd152": 3.40822e21, - "Gd153": 20770560.0, - "Gd155_m1": 0.03197, - "Gd159": 66524.4, - "Gd161": 219.6, - "Gd162": 504.0, - "Gd163": 68.0, - "Gd164": 45.0, - "Gd165": 10.3, - "Gd166": 4.8, - "Gd167": 3.0, - "Gd168": 0.3, - "Gd169": 1.0, - "Tb135": 0.995, - "Tb136": 0.2, - "Tb137": 0.6, - "Tb138": 2e-07, - "Tb139": 1.6, - "Tb140": 2.4, - "Tb141": 3.5, - "Tb141_m1": 7.9, - "Tb142": 0.597, - "Tb142_m1": 0.303, - "Tb143": 12.0, - "Tb143_m1": 21.0, - "Tb144": 1.0, - "Tb144_m1": 4.25, - "Tb145": 30.9, - "Tb145_m1": 30.9, - "Tb146": 8.0, - "Tb146_m1": 23.0, - "Tb146_m2": 0.00118, - "Tb147": 5904.0, - "Tb147_m1": 109.8, - "Tb148": 3600.0, - "Tb148_m1": 132.0, - "Tb149": 14824.8, - "Tb149_m1": 249.6, - "Tb150": 12528.0, - "Tb150_m1": 348.0, - "Tb151": 63392.4, - "Tb151_m1": 25.0, - "Tb152": 63000.0, - "Tb152_m1": 252.0, - "Tb153": 202176.0, - "Tb154": 77400.0, - "Tb154_m1": 33840.0, - "Tb154_m2": 81720.0, - "Tb155": 459648.0, - "Tb156": 462240.0, - "Tb156_m1": 87840.0, - "Tb156_m2": 19080.0, - "Tb157": 2240590000.0, - "Tb158": 5680368000.0, - "Tb158_m1": 10.7, - "Tb160": 6246720.0, - "Tb161": 596678.4, - "Tb162": 456.0, - "Tb163": 1170.0, - "Tb164": 180.0, - "Tb165": 126.6, - "Tb166": 25.1, - "Tb167": 19.4, - "Tb168": 8.2, - "Tb169": 2.0, - "Tb170": 3.0, - "Tb171": 0.5, - "Dy138": 0.2, - "Dy139": 0.6, - "Dy140": 0.84, - "Dy141": 0.9, - "Dy142": 2.3, - "Dy143": 3.2, - "Dy143_m1": 3.0, - "Dy144": 9.1, - "Dy145": 6.0, - "Dy145_m1": 14.1, - "Dy146": 29.0, - "Dy146_m1": 0.15, - "Dy147": 40.0, - "Dy147_m1": 55.7, - "Dy148": 198.0, - "Dy149": 252.0, - "Dy149_m1": 0.49, - "Dy150": 430.2, - "Dy151": 1074.0, - "Dy152": 8568.0, - "Dy153": 23040.0, - "Dy154": 94672800000000.0, - "Dy155": 35640.0, - "Dy157": 29304.0, - "Dy157_m1": 0.0216, - "Dy159": 12476160.0, - "Dy165": 8402.4, - "Dy165_m1": 75.42, - "Dy166": 293760.0, - "Dy167": 372.0, - "Dy168": 522.0, - "Dy169": 39.0, - "Dy170": 30.0, - "Dy171": 6.0, - "Dy172": 3.0, - "Dy173": 2.0, - "Ho140": 0.006, - "Ho141": 0.0041, - "Ho142": 0.4, - "Ho143": 2e-07, - "Ho144": 0.7, - "Ho145": 2.4, - "Ho146": 3.6, - "Ho147": 5.8, - "Ho148": 2.2, - "Ho148_m1": 9.59, - "Ho148_m2": 0.00236, - "Ho149": 21.1, - "Ho149_m1": 56.0, - "Ho150": 72.0, - "Ho150_m1": 23.3, - "Ho151": 35.2, - "Ho151_m1": 47.2, - "Ho152": 161.8, - "Ho152_m1": 50.0, - "Ho153": 120.6, - "Ho153_m1": 558.0, - "Ho154": 705.6, - "Ho154_m1": 186.0, - "Ho155": 2880.0, - "Ho155_m1": 0.00088, - "Ho156": 3360.0, - "Ho156_m1": 9.5, - "Ho156_m2": 468.0, - "Ho157": 756.0, - "Ho158": 678.0, - "Ho158_m1": 1680.0, - "Ho158_m2": 1278.0, - "Ho159": 1983.0, - "Ho159_m1": 8.3, - "Ho160": 1536.0, - "Ho160_m1": 18072.0, - "Ho160_m2": 3.0, - "Ho161": 8928.0, - "Ho161_m1": 6.76, - "Ho162": 900.0, - "Ho162_m1": 4020.0, - "Ho163": 144218000000.0, - "Ho163_m1": 1.09, - "Ho164": 1740.0, - "Ho164_m1": 2250.0, - "Ho166": 96480.0, - "Ho166_m1": 37869100000.0, - "Ho167": 11160.0, - "Ho168": 179.4, - "Ho168_m1": 132.0, - "Ho169": 283.2, - "Ho170": 165.6, - "Ho170_m1": 43.0, - "Ho171": 53.0, - "Ho172": 25.0, - "Ho173": 10.0, - "Ho174": 8.0, - "Ho175": 5.0, - "Er143": 0.2, - "Er144": 2e-07, - "Er146": 1.7, - "Er147": 2.5, - "Er147_m1": 2.5, - "Er148": 4.6, - "Er149": 4.0, - "Er149_m1": 8.9, - "Er150": 18.5, - "Er151": 23.5, - "Er151_m1": 0.58, - "Er152": 10.3, - "Er153": 37.1, - "Er154": 223.8, - "Er155": 318.0, - "Er156": 1170.0, - "Er157": 1119.0, - "Er157_m1": 0.076, - "Er158": 8244.0, - "Er159": 2160.0, - "Er160": 102888.0, - "Er161": 11556.0, - "Er163": 4500.0, - "Er165": 37296.0, - "Er167_m1": 2.269, - "Er169": 811468.8, - "Er171": 27057.6, - "Er172": 177480.0, - "Er173": 84.0, - "Er174": 192.0, - "Er175": 72.0, - "Er176": 20.0, - "Er177": 3.0, - "Tm145": 3.1e-06, - "Tm146": 0.08, - "Tm146_m1": 0.2, - "Tm147": 0.58, - "Tm148": 0.7, - "Tm149": 0.9, - "Tm150": 2.2, - "Tm150_m1": 0.0052, - "Tm151": 4.17, - "Tm151_m1": 4.51e-07, - "Tm152": 8.0, - "Tm152_m1": 5.2, - "Tm153": 1.48, - "Tm153_m1": 2.5, - "Tm154": 8.1, - "Tm154_m1": 3.3, - "Tm155": 21.6, - "Tm155_m1": 45.0, - "Tm156": 83.8, - "Tm157": 217.8, - "Tm158": 238.8, - "Tm159": 547.8, - "Tm160": 564.0, - "Tm160_m1": 74.5, - "Tm161": 1812.0, - "Tm162": 1302.0, - "Tm162_m1": 24.3, - "Tm163": 6516.0, - "Tm164": 120.0, - "Tm164_m1": 306.0, - "Tm165": 108216.0, - "Tm166": 27720.0, - "Tm166_m1": 0.34, - "Tm167": 799200.0, - "Tm168": 8043840.0, - "Tm170": 11111040.0, - "Tm171": 60590590.0, - "Tm172": 228960.0, - "Tm173": 29664.0, - "Tm174": 324.0, - "Tm175": 912.0, - "Tm176": 114.0, - "Tm177": 90.0, - "Tm178": 30.0, - "Tm179": 20.0, - "Yb148": 0.25, - "Yb149": 0.7, - "Yb150": 2e-07, - "Yb151": 1.6, - "Yb151_m1": 1.6, - "Yb152": 3.04, - "Yb153": 4.2, - "Yb154": 0.409, - "Yb155": 1.793, - "Yb156": 26.1, - "Yb157": 38.6, - "Yb158": 89.4, - "Yb159": 100.2, - "Yb160": 288.0, - "Yb161": 252.0, - "Yb162": 1132.2, - "Yb163": 663.0, - "Yb164": 4548.0, - "Yb165": 594.0, - "Yb166": 204120.0, - "Yb167": 1050.0, - "Yb169": 2766355.0, - "Yb169_m1": 46.0, - "Yb171_m1": 0.00525, - "Yb175": 361584.0, - "Yb175_m1": 0.0682, - "Yb176_m1": 11.4, - "Yb177": 6879.6, - "Yb177_m1": 6.41, - "Yb178": 4440.0, - "Yb179": 480.0, - "Yb180": 144.0, - "Yb181": 60.0, - "Lu150": 0.043, - "Lu151": 0.0806, - "Lu152": 0.7, - "Lu153": 0.9, - "Lu153_m1": 1.0, - "Lu154": 2.0, - "Lu154_m1": 1.12, - "Lu155": 0.068, - "Lu155_m1": 0.138, - "Lu155_m2": 0.00269, - "Lu156": 0.494, - "Lu156_m1": 0.198, - "Lu157": 6.8, - "Lu157_m1": 4.79, - "Lu158": 10.6, - "Lu159": 12.1, - "Lu160": 36.1, - "Lu160_m1": 40.0, - "Lu161": 77.0, - "Lu161_m1": 0.0073, - "Lu162": 82.2, - "Lu162_m1": 90.0, - "Lu162_m2": 114.0, - "Lu163": 238.2, - "Lu164": 188.4, - "Lu165": 644.4, - "Lu166": 159.0, - "Lu166_m1": 84.6, - "Lu166_m2": 127.2, - "Lu167": 3090.0, - "Lu167_m1": 60.0, - "Lu168": 330.0, - "Lu168_m1": 402.0, - "Lu169": 122616.0, - "Lu169_m1": 160.0, - "Lu170": 173836.8, - "Lu170_m1": 0.67, - "Lu171": 711936.0, - "Lu171_m1": 79.0, - "Lu172": 578880.0, - "Lu172_m1": 222.0, - "Lu173": 43233910.0, - "Lu174": 104455700.0, - "Lu174_m1": 12268800.0, - "Lu176": 1.18657e18, - "Lu176_m1": 13086.0, - "Lu177": 574300.8, - "Lu177_m1": 13862020.0, - "Lu177_m2": 390.0, - "Lu178": 1704.0, - "Lu178_m1": 1386.0, - "Lu179": 16524.0, - "Lu179_m1": 0.0031, - "Lu180": 342.0, - "Lu180_m1": 0.001, - "Lu181": 210.0, - "Lu182": 120.0, - "Lu183": 58.0, - "Lu184": 20.0, - "Hf153": 6e-06, - "Hf154": 2.0, - "Hf155": 0.89, - "Hf156": 0.023, - "Hf157": 0.11, - "Hf158": 2.85, - "Hf159": 5.6, - "Hf160": 13.6, - "Hf161": 18.2, - "Hf162": 39.4, - "Hf163": 40.0, - "Hf164": 111.0, - "Hf165": 76.0, - "Hf166": 406.2, - "Hf167": 123.0, - "Hf168": 1557.0, - "Hf169": 194.4, - "Hf170": 57636.0, - "Hf171": 43560.0, - "Hf171_m1": 29.5, - "Hf172": 59012710.0, - "Hf173": 84960.0, - "Hf174": 6.31152e22, - "Hf175": 6048000.0, - "Hf177_m1": 1.09, - "Hf177_m2": 3084.0, - "Hf178_m1": 4.0, - "Hf178_m2": 978285600.0, - "Hf179_m1": 18.67, - "Hf179_m2": 2164320.0, - "Hf180_m1": 19800.0, - "Hf181": 3662496.0, - "Hf182": 280863000000000.0, - "Hf182_m1": 3690.0, - "Hf183": 3841.2, - "Hf184": 14832.0, - "Hf184_m1": 48.0, - "Hf185": 210.0, - "Hf186": 156.0, - "Hf187": 30.0, - "Hf188": 20.0, - "Ta155": 0.0031, - "Ta156": 0.144, - "Ta156_m1": 0.36, - "Ta157": 0.0101, - "Ta157_m1": 0.0043, - "Ta157_m2": 0.0017, - "Ta158": 0.055, - "Ta158_m1": 0.0367, - "Ta159": 0.83, - "Ta159_m1": 0.515, - "Ta160": 1.55, - "Ta160_m1": 1.7, - "Ta161": 2.89, - "Ta162": 3.57, - "Ta163": 10.6, - "Ta164": 14.2, - "Ta165": 31.0, - "Ta166": 34.4, - "Ta167": 80.0, - "Ta168": 120.0, - "Ta169": 294.0, - "Ta170": 405.6, - "Ta171": 1398.0, - "Ta172": 2208.0, - "Ta173": 11304.0, - "Ta174": 4104.0, - "Ta175": 37800.0, - "Ta176": 29124.0, - "Ta176_m1": 0.0011, - "Ta176_m2": 0.00097, - "Ta177": 203616.0, - "Ta178": 558.6, - "Ta178_m1": 8496.0, - "Ta178_m2": 0.058, - "Ta179": 57434830.0, - "Ta179_m1": 0.009, - "Ta179_m2": 0.0541, - "Ta180": 29354.4, - "Ta182": 9913536.0, - "Ta182_m1": 0.283, - "Ta182_m2": 950.4, - "Ta183": 440640.0, - "Ta184": 31320.0, - "Ta185": 2964.0, - "Ta185_m1": 0.002, - "Ta186": 630.0, - "Ta187": 120.0, - "Ta188": 20.0, - "Ta189": 3.0, - "Ta190": 0.3, - "W158": 0.00125, - "W159": 0.0073, - "W160": 0.091, - "W161": 0.409, - "W162": 1.36, - "W163": 2.8, - "W164": 6.3, - "W165": 5.1, - "W166": 19.2, - "W167": 19.9, - "W168": 53.0, - "W169": 74.0, - "W170": 145.2, - "W171": 142.8, - "W172": 396.0, - "W173": 456.0, - "W174": 1992.0, - "W175": 2112.0, - "W176": 9000.0, - "W177": 7920.0, - "W178": 1866240.0, - "W179": 2223.0, - "W179_m1": 384.0, - "W180": 5.68037e25, - "W180_m1": 0.00547, - "W181": 10471680.0, - "W183_m1": 5.2, - "W185": 6488640.0, - "W185_m1": 100.2, - "W186": 5.36e27, - "W186_m1": 0.003, - "W187": 86400.0, - "W188": 6028992.0, - "W189": 642.0, - "W190": 1800.0, - "W190_m1": 0.0031, - "W191": 20.0, - "W192": 10.0, - "Re160": 0.00085, - "Re161": 0.00037, - "Re161_m1": 0.0156, - "Re162": 0.107, - "Re162_m1": 0.077, - "Re163": 0.39, - "Re163_m1": 0.214, - "Re164": 0.53, - "Re164_m1": 0.87, - "Re165": 1.0, - "Re165_m1": 2.1, - "Re166": 2.25, - "Re167": 5.9, - "Re167_m1": 3.4, - "Re168": 4.4, - "Re169": 8.1, - "Re169_m1": 15.1, - "Re170": 9.2, - "Re171": 15.2, - "Re172": 55.0, - "Re172_m1": 15.0, - "Re173": 118.8, - "Re174": 144.0, - "Re175": 353.4, - "Re176": 318.0, - "Re177": 840.0, - "Re178": 792.0, - "Re179": 1170.0, - "Re180": 146.4, - "Re181": 71640.0, - "Re182": 230400.0, - "Re182_m1": 45720.0, - "Re183": 6048000.0, - "Re183_m1": 0.00104, - "Re184": 3058560.0, - "Re184_m1": 14601600.0, - "Re186": 321261.1, - "Re186_m1": 6311520000000.0, - "Re187": 1.36644e18, - "Re188": 61214.4, - "Re188_m1": 1115.4, - "Re189": 87480.0, - "Re190": 186.0, - "Re190_m1": 11520.0, - "Re191": 588.0, - "Re192": 16.0, - "Re193": 51.9, - "Re194": 1.0, - "Os162": 0.00205, - "Os163": 0.0055, - "Os164": 0.021, - "Os165": 0.071, - "Os166": 0.199, - "Os167": 0.81, - "Os168": 2.1, - "Os169": 3.43, - "Os170": 7.37, - "Os171": 8.3, - "Os172": 19.2, - "Os173": 22.4, - "Os174": 44.0, - "Os175": 84.0, - "Os176": 216.0, - "Os177": 180.0, - "Os178": 300.0, - "Os179": 390.0, - "Os180": 1290.0, - "Os181": 6300.0, - "Os181_m1": 162.0, - "Os182": 78624.0, - "Os183": 46800.0, - "Os183_m1": 35640.0, - "Os185": 8087040.0, - "Os186": 6.31152e22, - "Os189_m1": 20916.0, - "Os190_m1": 594.0, - "Os191": 1330560.0, - "Os191_m1": 47160.0, - "Os192_m1": 5.9, - "Os193": 108396.0, - "Os194": 189345600.0, - "Os195": 540.0, - "Os196": 2094.0, - "Ir164": 0.14, - "Ir164_m1": 9.5e-05, - "Ir165": 1e-06, - "Ir166": 0.0105, - "Ir166_m1": 0.0151, - "Ir167": 0.0352, - "Ir167_m1": 0.0257, - "Ir168": 0.232, - "Ir168_m1": 0.16, - "Ir169": 0.64, - "Ir169_m1": 0.281, - "Ir170": 0.9, - "Ir170_m1": 0.811, - "Ir171": 3.5, - "Ir171_m1": 1.4, - "Ir172": 4.4, - "Ir172_m1": 2.0, - "Ir173": 9.0, - "Ir173_m1": 2.2, - "Ir174": 7.9, - "Ir174_m1": 4.9, - "Ir175": 9.0, - "Ir176": 8.7, - "Ir177": 30.0, - "Ir178": 12.0, - "Ir179": 79.0, - "Ir180": 90.0, - "Ir181": 294.0, - "Ir182": 900.0, - "Ir183": 3480.0, - "Ir184": 11124.0, - "Ir185": 51840.0, - "Ir186": 59904.0, - "Ir186_m1": 6840.0, - "Ir187": 37800.0, - "Ir187_m1": 0.0303, - "Ir188": 149400.0, - "Ir188_m1": 0.0042, - "Ir189": 1140480.0, - "Ir189_m1": 0.0133, - "Ir189_m2": 0.0037, - "Ir190": 1017792.0, - "Ir190_m1": 4032.0, - "Ir190_m2": 11113.2, - "Ir191_m1": 4.899, - "Ir191_m2": 5.5, - "Ir192": 6378653.0, - "Ir192_m1": 87.0, - "Ir192_m2": 7605382000.0, - "Ir193_m1": 909792.0, - "Ir194": 69408.0, - "Ir194_m1": 0.03185, - "Ir194_m2": 14774400.0, - "Ir195": 9000.0, - "Ir195_m1": 13680.0, - "Ir196": 52.0, - "Ir196_m1": 5040.0, - "Ir197": 348.0, - "Ir197_m1": 534.0, - "Ir198": 8.0, - "Ir199": 6.5, - "Pt166": 0.0003, - "Pt167": 0.00078, - "Pt168": 0.002, - "Pt169": 0.007, - "Pt170": 0.014, - "Pt171": 0.051, - "Pt172": 0.096, - "Pt173": 0.382, - "Pt174": 0.889, - "Pt175": 2.53, - "Pt176": 6.33, - "Pt177": 10.6, - "Pt178": 21.1, - "Pt179": 21.2, - "Pt180": 56.0, - "Pt181": 52.0, - "Pt182": 180.0, - "Pt183": 390.0, - "Pt183_m1": 43.0, - "Pt184": 1038.0, - "Pt184_m1": 0.00101, - "Pt185": 4254.0, - "Pt185_m1": 1980.0, - "Pt186": 7488.0, - "Pt187": 8460.0, - "Pt188": 881280.0, - "Pt189": 39132.0, - "Pt190": 2.05124e19, - "Pt191": 242092.8, - "Pt193": 1577880000.0, - "Pt193_m1": 374112.0, - "Pt195_m1": 346464.0, - "Pt197": 71609.4, - "Pt197_m1": 5724.6, - "Pt199": 1848.0, - "Pt199_m1": 13.6, - "Pt200": 45360.0, - "Pt201": 150.0, - "Pt202": 158400.0, - "Au169": 0.00015, - "Au170": 0.000291, - "Au170_m1": 0.00062, - "Au171": 1.9e-05, - "Au171_m1": 0.00102, - "Au172": 0.0047, - "Au173": 0.025, - "Au173_m1": 0.014, - "Au174": 0.139, - "Au174_m1": 0.1629, - "Au175": 0.1, - "Au175_m1": 0.156, - "Au176": 1.05, - "Au176_m1": 1.36, - "Au177": 1.462, - "Au177_m1": 1.18, - "Au178": 2.6, - "Au179": 3.3, - "Au180": 8.1, - "Au181": 13.7, - "Au182": 15.6, - "Au183": 42.8, - "Au184": 20.6, - "Au184_m1": 47.6, - "Au185": 255.0, - "Au186": 642.0, - "Au187": 504.0, - "Au187_m1": 2.3, - "Au188": 530.4, - "Au189": 1722.0, - "Au189_m1": 275.4, - "Au190": 2568.0, - "Au190_m1": 0.125, - "Au191": 11448.0, - "Au191_m1": 0.92, - "Au192": 17784.0, - "Au192_m1": 0.029, - "Au192_m2": 0.16, - "Au193": 63540.0, - "Au193_m1": 3.9, - "Au194": 136872.0, - "Au194_m1": 0.6, - "Au194_m2": 0.42, - "Au195": 16078870.0, - "Au195_m1": 30.5, - "Au196": 532820.2, - "Au196_m1": 8.1, - "Au196_m2": 34560.0, - "Au197_m1": 7.73, - "Au198": 232822.1, - "Au198_m1": 196300.8, - "Au199": 271209.6, - "Au200": 2904.0, - "Au200_m1": 67320.0, - "Au201": 1560.0, - "Au202": 28.4, - "Au203": 60.0, - "Au204": 39.8, - "Au205": 31.0, - "Hg171": 6.9e-05, - "Hg172": 0.000365, - "Hg173": 0.0007, - "Hg174": 0.0019, - "Hg175": 0.0107, - "Hg176": 0.0203, - "Hg177": 0.1273, - "Hg178": 0.269, - "Hg179": 1.08, - "Hg180": 2.58, - "Hg181": 3.6, - "Hg182": 10.83, - "Hg183": 9.4, - "Hg184": 30.9, - "Hg185": 49.1, - "Hg185_m1": 21.6, - "Hg186": 82.8, - "Hg187": 144.0, - "Hg187_m1": 114.0, - "Hg188": 195.0, - "Hg189": 456.0, - "Hg189_m1": 516.0, - "Hg190": 1200.0, - "Hg191": 2940.0, - "Hg191_m1": 3048.0, - "Hg192": 17460.0, - "Hg193": 13680.0, - "Hg193_m1": 42480.0, - "Hg194": 14011600000.0, - "Hg195": 37908.0, - "Hg195_m1": 149760.0, - "Hg197": 230904.0, - "Hg197_m1": 85680.0, - "Hg199_m1": 2560.2, - "Hg203": 4025722.0, - "Hg205": 308.4, - "Hg205_m1": 0.00109, - "Hg206": 499.2, - "Hg207": 174.0, - "Hg208": 2490.0, - "Hg209": 36.5, - "Hg210": 146.0, - "Tl176": 0.006, - "Tl177": 0.018, - "Tl178": 0.06, - "Tl179": 0.23, - "Tl179_m1": 0.0017, - "Tl180": 1.09, - "Tl181": 3.2, - "Tl181_m1": 0.0014, - "Tl182": 3.1, - "Tl183": 6.9, - "Tl183_m1": 0.0533, - "Tl184": 11.0, - "Tl185": 19.5, - "Tl185_m1": 1.93, - "Tl186": 27.5, - "Tl186_m1": 2.9, - "Tl187": 51.0, - "Tl187_m1": 15.6, - "Tl188": 71.0, - "Tl188_m1": 71.0, - "Tl188_m2": 0.041, - "Tl189": 138.0, - "Tl189_m1": 84.0, - "Tl190": 222.0, - "Tl190_m1": 156.0, - "Tl191": 1200.0, - "Tl191_m1": 313.2, - "Tl192": 576.0, - "Tl192_m1": 648.0, - "Tl193": 1296.0, - "Tl193_m1": 126.6, - "Tl194": 1980.0, - "Tl194_m1": 1968.0, - "Tl195": 4176.0, - "Tl195_m1": 3.6, - "Tl196": 6624.0, - "Tl196_m1": 5076.0, - "Tl197": 10224.0, - "Tl197_m1": 0.54, - "Tl198": 19080.0, - "Tl198_m1": 6732.0, - "Tl198_m2": 0.0321, - "Tl199": 26712.0, - "Tl199_m1": 0.0284, - "Tl200": 93960.0, - "Tl200_m1": 0.034, - "Tl201": 262837.4, - "Tl201_m1": 0.00201, - "Tl202": 1063584.0, - "Tl204": 119382400.0, - "Tl206": 252.12, - "Tl206_m1": 224.4, - "Tl207": 286.2, - "Tl207_m1": 1.33, - "Tl208": 183.18, - "Tl209": 132.0, - "Tl210": 78.0, - "Tl211": 60.0, - "Tl212": 67.0, - "Pb178": 0.00023, - "Pb179": 0.003, - "Pb180": 0.0045, - "Pb181": 0.036, - "Pb181_m1": 0.045, - "Pb182": 0.0575, - "Pb183": 0.535, - "Pb183_m1": 0.415, - "Pb184": 0.49, - "Pb185": 6.3, - "Pb185_m1": 4.3, - "Pb186": 4.82, - "Pb187": 15.2, - "Pb187_m1": 18.3, - "Pb188": 25.1, - "Pb189": 39.0, - "Pb189_m1": 50.0, - "Pb190": 71.0, - "Pb191": 79.8, - "Pb191_m1": 130.8, - "Pb192": 210.0, - "Pb193": 120.0, - "Pb193_m1": 348.0, - "Pb194": 720.0, - "Pb195": 900.0, - "Pb195_m1": 900.0, - "Pb196": 2220.0, - "Pb197": 480.0, - "Pb197_m1": 2580.0, - "Pb198": 8640.0, - "Pb199": 5400.0, - "Pb199_m1": 732.0, - "Pb200": 77400.0, - "Pb201": 33588.0, - "Pb201_m1": 60.8, - "Pb202": 1656770000000.0, - "Pb202_m1": 12744.0, - "Pb203": 186912.0, - "Pb203_m1": 6.21, - "Pb203_m2": 0.48, - "Pb204": 4.4e24, - "Pb204_m1": 4015.8, - "Pb205": 545946000000000.0, - "Pb205_m1": 0.00555, - "Pb207_m1": 0.806, - "Pb209": 11710.8, - "Pb210": 700578700.0, - "Pb211": 2166.0, - "Pb212": 38304.0, - "Pb213": 612.0, - "Pb214": 1608.0, - "Pb215": 36.0, - "Bi184": 0.013, - "Bi184_m1": 0.0066, - "Bi185": 5.8e-05, - "Bi186": 0.015, - "Bi186_m1": 0.0098, - "Bi187": 0.032, - "Bi187_m1": 0.00031, - "Bi188": 0.06, - "Bi188_m1": 0.265, - "Bi189": 0.674, - "Bi189_m1": 0.005, - "Bi190": 6.3, - "Bi190_m1": 6.2, - "Bi191": 12.4, - "Bi191_m1": 0.125, - "Bi192": 34.6, - "Bi192_m1": 39.6, - "Bi193": 63.6, - "Bi193_m1": 3.2, - "Bi194": 95.0, - "Bi194_m1": 125.0, - "Bi194_m2": 115.0, - "Bi195": 183.0, - "Bi195_m1": 87.0, - "Bi196": 308.0, - "Bi196_m1": 0.6, - "Bi196_m2": 240.0, - "Bi197": 559.8, - "Bi197_m1": 302.4, - "Bi198": 618.0, - "Bi198_m1": 696.0, - "Bi198_m2": 7.7, - "Bi199": 1620.0, - "Bi199_m1": 1482.0, - "Bi200": 2184.0, - "Bi200_m1": 1860.0, - "Bi200_m2": 0.4, - "Bi201": 6180.0, - "Bi201_m1": 3450.0, - "Bi202": 6156.0, - "Bi203": 42336.0, - "Bi203_m1": 0.305, - "Bi204": 40392.0, - "Bi204_m1": 0.013, - "Bi204_m2": 0.00107, - "Bi205": 1322784.0, - "Bi206": 539395.2, - "Bi207": 995642300.0, - "Bi208": 11613200000000.0, - "Bi208_m1": 0.00258, - "Bi209": 5.99594e26, - "Bi210": 433036.8, - "Bi210_m1": 95935100000000.0, - "Bi211": 128.4, - "Bi212": 3633.0, - "Bi212_m1": 1500.0, - "Bi212_m2": 420.0, - "Bi213": 2735.4, - "Bi214": 1194.0, - "Bi215": 462.0, - "Bi215_m1": 36.4, - "Bi216": 135.0, - "Bi217": 98.5, - "Bi218": 33.0, - "Po188": 0.000425, - "Po189": 0.0035, - "Po190": 0.00245, - "Po191": 0.022, - "Po191_m1": 0.093, - "Po192": 0.0332, - "Po193": 0.37, - "Po193_m1": 0.373, - "Po194": 0.392, - "Po195": 4.64, - "Po195_m1": 1.92, - "Po196": 5.8, - "Po197": 84.0, - "Po197_m1": 32.0, - "Po198": 106.2, - "Po199": 328.2, - "Po199_m1": 250.2, - "Po200": 690.6, - "Po201": 936.0, - "Po201_m1": 537.6, - "Po202": 2676.0, - "Po203": 2202.0, - "Po203_m1": 45.0, - "Po204": 12708.0, - "Po205": 6264.0, - "Po205_m1": 0.000645, - "Po205_m2": 0.0574, - "Po206": 760320.0, - "Po207": 20880.0, - "Po207_m1": 2.79, - "Po208": 91453920.0, - "Po209": 3218880000.0, - "Po210": 11955690.0, - "Po211": 0.516, - "Po211_m1": 25.2, - "Po212": 2.99e-07, - "Po212_m1": 45.1, - "Po213": 4.2e-06, - "Po214": 0.0001643, - "Po215": 0.001781, - "Po216": 0.145, - "Po217": 1.53, - "Po218": 185.88, - "Po219": 3e-07, - "Po220": 3e-07, - "At193": 0.0285, - "At194": 0.04, - "At194_m1": 0.25, - "At195": 0.328, - "At195_m1": 0.147, - "At196": 0.388, - "At196_m1": 1.1e-05, - "At197": 0.388, - "At197_m1": 2.0, - "At198": 4.2, - "At198_m1": 1.0, - "At199": 7.03, - "At200": 43.0, - "At200_m1": 47.0, - "At200_m2": 7.9, - "At201": 85.2, - "At202": 184.0, - "At202_m1": 182.0, - "At202_m2": 0.46, - "At203": 444.0, - "At204": 553.2, - "At204_m1": 0.108, - "At205": 1614.0, - "At206": 1836.0, - "At207": 6480.0, - "At208": 5868.0, - "At209": 19476.0, - "At210": 29160.0, - "At211": 25970.4, - "At212": 0.314, - "At212_m1": 0.119, - "At213": 1.25e-07, - "At214": 5.58e-07, - "At215": 0.0001, - "At216": 0.0003, - "At217": 0.0323, - "At218": 1.5, - "At219": 56.0, - "At220": 222.6, - "At221": 138.0, - "At222": 54.0, - "At223": 50.0, - "Rn195": 0.0065, - "Rn195_m1": 0.005, - "Rn196": 0.0046, - "Rn197": 0.066, - "Rn197_m1": 0.021, - "Rn198": 0.065, - "Rn199": 0.59, - "Rn199_m1": 0.31, - "Rn200": 1.075, - "Rn201": 7.0, - "Rn201_m1": 3.8, - "Rn202": 9.7, - "Rn203": 44.0, - "Rn203_m1": 26.9, - "Rn204": 70.2, - "Rn205": 170.0, - "Rn206": 340.2, - "Rn207": 555.0, - "Rn208": 1461.0, - "Rn209": 1728.0, - "Rn210": 8640.0, - "Rn211": 52560.0, - "Rn212": 1434.0, - "Rn213": 0.025, - "Rn214": 2.7e-07, - "Rn215": 2.3e-06, - "Rn216": 4.5e-05, - "Rn217": 0.00054, - "Rn218": 0.035, - "Rn219": 3.96, - "Rn220": 55.6, - "Rn221": 1542.0, - "Rn222": 330350.4, - "Rn223": 1458.0, - "Rn224": 6420.0, - "Rn225": 279.6, - "Rn226": 444.0, - "Rn227": 20.8, - "Rn228": 65.0, - "Fr199": 0.015, - "Fr200": 0.049, - "Fr201": 0.069, - "Fr202": 0.3, - "Fr202_m1": 0.29, - "Fr203": 0.55, - "Fr204": 1.7, - "Fr204_m1": 2.6, - "Fr204_m2": 1.0, - "Fr205": 3.8, - "Fr206": 16.0, - "Fr206_m1": 16.0, - "Fr206_m2": 0.7, - "Fr207": 14.8, - "Fr208": 59.1, - "Fr209": 50.0, - "Fr210": 190.8, - "Fr211": 186.0, - "Fr212": 1200.0, - "Fr213": 34.82, - "Fr214": 0.005, - "Fr214_m1": 0.00335, - "Fr215": 8.6e-08, - "Fr216": 7e-07, - "Fr217": 1.9e-05, - "Fr218": 0.001, - "Fr218_m1": 0.022, - "Fr219": 0.02, - "Fr220": 27.4, - "Fr221": 294.0, - "Fr222": 852.0, - "Fr223": 1320.0, - "Fr224": 199.8, - "Fr225": 237.0, - "Fr226": 49.0, - "Fr227": 148.2, - "Fr228": 38.0, - "Fr229": 50.2, - "Fr230": 19.1, - "Fr231": 17.6, - "Fr232": 5.5, - "Ra202": 0.0275, - "Ra203": 0.031, - "Ra203_m1": 0.025, - "Ra204": 0.0605, - "Ra205": 0.22, - "Ra205_m1": 0.18, - "Ra206": 0.24, - "Ra207": 1.3, - "Ra207_m1": 0.055, - "Ra208": 1.3, - "Ra209": 4.6, - "Ra210": 3.7, - "Ra211": 13.0, - "Ra212": 13.0, - "Ra213": 163.8, - "Ra213_m1": 0.0021, - "Ra214": 2.46, - "Ra215": 0.00155, - "Ra216": 1.82e-07, - "Ra217": 1.6e-06, - "Ra218": 2.52e-05, - "Ra219": 0.01, - "Ra220": 0.018, - "Ra221": 28.0, - "Ra222": 36.17, - "Ra223": 987552.0, - "Ra224": 316224.0, - "Ra225": 1287360.0, - "Ra226": 50492200000.0, - "Ra227": 2532.0, - "Ra228": 181456200.0, - "Ra229": 240.0, - "Ra230": 5580.0, - "Ra231": 103.0, - "Ra232": 252.0, - "Ra233": 30.0, - "Ra234": 30.0, - "Ac206": 0.024, - "Ac206_m1": 0.0395, - "Ac207": 0.027, - "Ac208": 0.095, - "Ac208_m1": 0.025, - "Ac209": 0.098, - "Ac210": 0.35, - "Ac211": 0.21, - "Ac212": 0.93, - "Ac213": 0.8, - "Ac214": 8.2, - "Ac215": 0.17, - "Ac216": 0.00044, - "Ac216_m1": 0.000441, - "Ac217": 6.9e-08, - "Ac218": 1.08e-06, - "Ac219": 1.18e-05, - "Ac220": 0.0264, - "Ac221": 0.052, - "Ac222": 5.0, - "Ac222_m1": 63.0, - "Ac223": 126.0, - "Ac224": 10008.0, - "Ac225": 864000.0, - "Ac226": 105732.0, - "Ac227": 687072100.0, - "Ac228": 22140.0, - "Ac229": 3762.0, - "Ac230": 122.0, - "Ac231": 450.0, - "Ac232": 119.0, - "Ac233": 145.0, - "Ac234": 44.0, - "Ac235": 60.0, - "Ac236": 120.0, - "Th209": 0.0065, - "Th210": 0.016, - "Th211": 0.05, - "Th212": 0.035, - "Th213": 0.14, - "Th214": 0.1, - "Th215": 1.2, - "Th216": 0.026, - "Th217": 0.000251, - "Th218": 1.17e-07, - "Th219": 1.05e-06, - "Th220": 9.7e-06, - "Th221": 0.00173, - "Th222": 0.002237, - "Th223": 0.6, - "Th224": 1.05, - "Th225": 523.2, - "Th226": 1834.2, - "Th227": 1613952.0, - "Th228": 60338130.0, - "Th229": 231633000000.0, - "Th230": 2378810000000.0, - "Th231": 91872.0, - "Th232": 4.43384e17, - "Th233": 1338.0, - "Th234": 2082240.0, - "Th235": 426.0, - "Th236": 2238.0, - "Th237": 282.0, - "Th238": 564.0, - "Pa212": 0.0051, - "Pa213": 0.0053, - "Pa214": 0.017, - "Pa215": 0.014, - "Pa216": 0.16, - "Pa217": 0.0036, - "Pa217_m1": 0.0012, - "Pa218": 0.000113, - "Pa219": 5.3e-08, - "Pa220": 7.8e-07, - "Pa221": 5.9e-06, - "Pa222": 0.0033, - "Pa223": 0.0051, - "Pa224": 0.79, - "Pa225": 1.7, - "Pa226": 108.0, - "Pa227": 2298.0, - "Pa228": 79200.0, - "Pa229": 129600.0, - "Pa230": 1503360.0, - "Pa231": 1033830000000.0, - "Pa232": 114048.0, - "Pa233": 2330640.0, - "Pa234": 24120.0, - "Pa234_m1": 69.54, - "Pa235": 1466.4, - "Pa236": 546.0, - "Pa237": 522.0, - "Pa238": 136.2, - "Pa239": 6480.0, - "Pa240": 120.0, - "U217": 0.0235, - "U218": 0.000545, - "U219": 4.2e-05, - "U220": 6e-08, - "U222": 1.3e-06, - "U223": 1.8e-05, - "U224": 0.0009, - "U225": 0.084, - "U226": 0.35, - "U227": 66.0, - "U228": 546.0, - "U229": 3480.0, - "U230": 1797120.0, - "U231": 362880.0, - "U232": 2174319000.0, - "U233": 5023970000000.0, - "U234": 7747390000000.0, - "U235": 2.22102e16, - "U235_m1": 1560.0, - "U236": 739079000000000.0, - "U237": 583200.0, - "U238": 1.40999e17, - "U239": 1407.0, - "U240": 50760.0, - "U241": 300.0, - "U242": 1008.0, - "Np225": 2e-06, - "Np226": 0.035, - "Np227": 0.51, - "Np228": 61.4, - "Np229": 240.0, - "Np230": 276.0, - "Np231": 2928.0, - "Np232": 882.0, - "Np233": 2172.0, - "Np234": 380160.0, - "Np235": 34231680.0, - "Np236": 4828310000000.0, - "Np236_m1": 81000.0, - "Np237": 67659500000000.0, - "Np238": 182908.8, - "Np239": 203558.4, - "Np240": 3714.0, - "Np240_m1": 433.2, - "Np241": 834.0, - "Np242": 132.0, - "Np242_m1": 330.0, - "Np243": 111.0, - "Np244": 137.4, - "Pu228": 1.85, - "Pu229": 112.0, - "Pu230": 102.0, - "Pu231": 516.0, - "Pu232": 2028.0, - "Pu233": 1254.0, - "Pu234": 31680.0, - "Pu235": 1518.0, - "Pu236": 90191620.0, - "Pu237": 3943296.0, - "Pu237_m1": 0.18, - "Pu238": 2767602000.0, - "Pu239": 760854000000.0, - "Pu240": 207049000000.0, - "Pu241": 450958100.0, - "Pu242": 11786800000000.0, - "Pu243": 17841.6, - "Pu244": 2559320000000000.0, - "Pu245": 37800.0, - "Pu246": 936576.0, - "Pu247": 196128.0, - "Am231": 10.0, - "Am232": 79.0, - "Am233": 192.0, - "Am234": 139.2, - "Am235": 618.0, - "Am236": 216.0, - "Am237": 4416.0, - "Am238": 5880.0, - "Am239": 42840.0, - "Am240": 182880.0, - "Am241": 13651800000.0, - "Am242": 57672.0, - "Am242_m1": 4449622000.0, - "Am242_m2": 0.014, - "Am243": 232580000000.0, - "Am244": 36360.0, - "Am244_m1": 1560.0, - "Am245": 7380.0, - "Am246": 2340.0, - "Am246_m1": 1500.0, - "Am247": 1380.0, - "Am248": 600.0, - "Am249": 120.0, - "Cm233": 17.7, - "Cm234": 51.0, - "Cm235": 300.0, - "Cm236": 1900.0, - "Cm237": 1200.0, - "Cm238": 8640.0, - "Cm239": 10440.0, - "Cm240": 2332800.0, - "Cm241": 2833920.0, - "Cm242": 14078020.0, - "Cm243": 918326200.0, - "Cm244": 571508100.0, - "Cm244_m1": 5e-07, - "Cm245": 268240000000.0, - "Cm246": 150214000000.0, - "Cm247": 492299000000000.0, - "Cm248": 10982000000000.0, - "Cm249": 3849.0, - "Cm250": 261928000000.0, - "Cm251": 1008.0, - "Bk235": 20.0, - "Bk237": 60.0, - "Bk238": 144.0, - "Bk240": 288.0, - "Bk241": 276.0, - "Bk242": 420.0, - "Bk243": 16200.0, - "Bk244": 15660.0, - "Bk245": 426816.0, - "Bk246": 155520.0, - "Bk247": 43549500000.0, - "Bk248": 283824000.0, - "Bk248_m1": 85320.0, - "Bk249": 27648000.0, - "Bk250": 11563.2, - "Bk251": 3336.0, - "Bk253": 600.0, - "Bk254": 120.0, - "Cf237": 2.1, - "Cf238": 0.021, - "Cf239": 51.5, - "Cf240": 57.6, - "Cf241": 226.8, - "Cf242": 222.0, - "Cf243": 642.0, - "Cf244": 1164.0, - "Cf245": 2700.0, - "Cf246": 128520.0, - "Cf247": 11196.0, - "Cf248": 28814400.0, - "Cf249": 11076700000.0, - "Cf250": 412773400.0, - "Cf251": 28338700000.0, - "Cf252": 83468070.0, - "Cf253": 1538784.0, - "Cf254": 5227200.0, - "Cf255": 5100.0, - "Cf256": 738.0, - "Es240": 1.0, - "Es241": 8.5, - "Es242": 13.5, - "Es243": 21.0, - "Es244": 37.0, - "Es245": 66.0, - "Es246": 462.0, - "Es247": 273.0, - "Es247_m1": 54000000.0, - "Es248": 1620.0, - "Es249": 6132.0, - "Es250": 30960.0, - "Es250_m1": 7992.0, - "Es251": 118800.0, - "Es252": 40754880.0, - "Es253": 1768608.0, - "Es254": 23820480.0, - "Es254_m1": 141479.9, - "Es255": 3438720.0, - "Es256": 1524.0, - "Es256_m1": 27360.0, - "Es257": 665280.0, - "Es258": 180.0, - "Fm242": 0.0008, - "Fm243": 0.2, - "Fm244": 0.0033, - "Fm245": 4.2, - "Fm246": 1.1, - "Fm247": 29.0, - "Fm248": 36.0, - "Fm249": 156.0, - "Fm250": 1800.0, - "Fm250_m1": 1.8, - "Fm251": 19080.0, - "Fm252": 91404.0, - "Fm253": 259200.0, - "Fm254": 11664.0, - "Fm255": 72252.0, - "Fm256": 9456.0, - "Fm257": 8683200.0, - "Fm258": 0.00037, - "Fm259": 1.5, - "Fm260": 0.004, - "Md245": 0.0009, - "Md245_m1": 0.39, - "Md246": 0.9, - "Md247": 1.12, - "Md247_m1": 0.26, - "Md248": 7.0, - "Md249": 24.0, - "Md249_m1": 1.9, - "Md250": 27.5, - "Md251": 240.0, - "Md252": 138.0, - "Md253": 630.0, - "Md254": 1680.0, - "Md254_m1": 1680.0, - "Md255": 1620.0, - "Md256": 4620.0, - "Md257": 19872.0, - "Md258": 4449600.0, - "Md258_m1": 3420.0, - "Md259": 5760.0, - "Md260": 2747520.0, - "Md261": 2400.0, - "No250": 4.35e-06, - "No251": 0.8, - "No251_m1": 1.02, - "No252": 2.44, - "No253": 97.2, - "No254": 51.0, - "No254_m1": 0.28, - "No255": 186.0, - "No256": 2.91, - "No257": 25.0, - "No258": 0.0012, - "No259": 3480.0, - "No260": 0.106, - "No261": 160000.0, - "No262": 0.005, - "Lr251": 1.341, - "Lr252": 0.38, - "Lr253": 0.575, - "Lr253_m1": 1.535, - "Lr254": 13.0, - "Lr255": 22.0, - "Lr255_m1": 2.53, - "Lr256": 27.0, - "Lr257": 0.646, - "Lr258": 4.1, - "Lr259": 6.2, - "Lr260": 180.0, - "Lr261": 2340.0, - "Lr262": 14400.0, - "Lr263": 18000.0, - "Rf253": 5.15e-05, - "Rf254": 2.3e-05, - "Rf255": 1.68, - "Rf256": 0.0064, - "Rf257": 4.7, - "Rf257_m1": 3.9, - "Rf258": 0.012, - "Rf259": 3.2, - "Rf260": 0.021, - "Rf261": 65.0, - "Rf261_m1": 81.0, - "Rf262": 2.3, - "Rf263": 600.0, - "Rf264": 3600.0, - "Rf265": 1.0, - "Db255": 1.7, - "Db256": 1.7, - "Db257": 1.52, - "Db257_m1": 0.78, - "Db258": 4.0, - "Db258_m1": 20.0, - "Db259": 0.51, - "Db260": 1.52, - "Db261": 1.8, - "Db262": 35.0, - "Db263": 28.5, - "Db264": 180.0, - "Db265": 900.0, - "Sg258": 0.0032, - "Sg259": 0.555, - "Sg260": 0.0036, - "Sg261": 0.23, - "Sg262": 0.0079, - "Sg263": 1.0, - "Sg263_m1": 0.12, - "Sg264": 0.045, - "Sg265": 8.0, - "Sg266": 25.0, - "Sg269": 50.0, - "Bh260": 0.0003, - "Bh261": 0.013, - "Bh262": 0.102, - "Bh262_m1": 0.022, - "Bh263": 0.0002, - "Bh264": 0.66, - "Bh265": 1.1, - "Bh266": 5.4, - "Bh267": 21.0, - "Bh269": 50.0, - "Hs263": 0.00355, - "Hs264": 0.0008, - "Hs265": 0.00205, - "Hs265_m1": 0.0003, - "Hs266": 0.00265, - "Hs267": 0.0545, - "Hs268": 1.2, - "Hs269": 12.9, - "Hs273": 50.0, - "Mt265": 120.0, - "Mt266": 0.0018, - "Mt266_m1": 0.0017, - "Mt267": 0.01, - "Mt268": 0.0225, - "Mt269": 0.05, - "Mt270": 0.00605, - "Mt271": 5.0, - "Mt273": 20.0, - "Ds267": 2.8e-06, - "Ds268": 0.0001, - "Ds269": 0.000268, - "Ds270": 0.00015, - "Ds270_m1": 0.009, - "Ds271": 0.001705, - "Ds271_m1": 0.0865, - "Ds272": 1.0, - "Ds273": 0.000225, - "Ds279_m1": 0.19, - "Rg272": 0.0041, -} - - # Values here are from the Committee on Data for Science and Technology # (CODATA) 2018 recommendation (https://physics.nist.gov/cuu/Constants/). @@ -3764,6 +199,9 @@ _ATOMIC_MASS = {} # Regex for GND nuclide names (used in zam function) _GND_NAME_RE = re.compile(r'([A-Zn][a-z]*)(\d+)((?:_[em]\d+)?)') +# Used in half_life function as a cache +_HALF_LIFE = {} + def atomic_mass(isotope): """Return atomic mass of isotope in atomic mass units. @@ -3838,6 +276,36 @@ def atomic_weight(element): .format(element)) +def half_life(isotope): + """Return half-life of isotope in seconds. Returns None if isotope is stable + + Half-life values are from `ENDF/B VIII.0 Decay Reaction Sublibrary + `_. + + Parameters + ---------- + isotope : str + Name of isotope, e.g., 'Pu239' + + Returns + ------- + float + Half-life of isotope in [seconds] + + """ + global _HALF_LIFE + if not _HALF_LIFE: + print('reading json file') + # Load data from AME2016 file + half_life_filename = os.path.join(os.path.dirname(__file__), 'half_life.json') + with open(half_life_filename, 'r') as f: + _HALF_LIFE = json.load(f) + + if isotope.title() not in _HALF_LIFE.keys(): + return None + + return _HALF_LIFE[isotope.title()] + def water_density(temperature, pressure=0.1013): """Return the density of liquid water at a given temperature and pressure. diff --git a/openmc/data/half_life.json b/openmc/data/half_life.json new file mode 100644 index 000000000..bb67da75d --- /dev/null +++ b/openmc/data/half_life.json @@ -0,0 +1,3563 @@ +{ + "H3": 388789600.0, + "H4": 9.90652e-23, + "H5": 7.99473e-23, + "H6": 2.84812e-22, + "H7": 2.3e-23, + "He5": 7.595e-22, + "He6": 0.8067, + "He7": 3.038e-21, + "He8": 0.1191, + "He9": 7e-21, + "He10": 1.519e-21, + "Li4": 7.55721e-23, + "Li5": 3.06868e-22, + "Li8": 0.838, + "Li9": 0.1783, + "Li10": 2e-21, + "Li11": 0.00859, + "Li12": 1e-08, + "Be5": 1e-09, + "Be6": 4.95326e-21, + "Be7": 4598208.0, + "Be8": 8.18132e-17, + "Be10": 47652000000000.0, + "Be11": 13.81, + "Be12": 0.0213, + "Be13": 2.7e-21, + "Be14": 0.00435, + "Be15": 2e-07, + "Be16": 2e-07, + "B6": 1e-09, + "B7": 3.255e-22, + "B8": 0.77, + "B9": 8.43888e-19, + "B12": 0.0202, + "B13": 0.01736, + "B14": 0.0125, + "B15": 0.00993, + "B16": 1.9e-10, + "B17": 0.00508, + "B18": 2.6e-08, + "B19": 0.00292, + "C8": 1.9813e-21, + "C9": 0.1265, + "C10": 19.29, + "C11": 1223.1, + "C14": 179878000000.0, + "C15": 2.449, + "C16": 0.747, + "C17": 0.193, + "C18": 0.092, + "C19": 0.049, + "C20": 0.0145, + "C21": 3e-08, + "C22": 0.0062, + "N10": 2e-22, + "N11": 3.12742e-22, + "N12": 0.011, + "N13": 597.9, + "N16": 7.13, + "N17": 4.171, + "N18": 0.624, + "N19": 0.271, + "N20": 0.13, + "N21": 0.085, + "N22": 0.024, + "N23": 0.0145, + "N24": 5.2e-08, + "N25": 2.6e-07, + "O12": 1.13925e-21, + "O13": 0.00858, + "O14": 70.606, + "O15": 122.24, + "O19": 26.88, + "O20": 13.51, + "O21": 3.42, + "O22": 2.25, + "O23": 0.0905, + "O24": 0.065, + "O25": 5e-08, + "O26": 4e-08, + "O27": 2.6e-07, + "O28": 1e-07, + "F14": 5.0007e-22, + "F15": 4.557e-22, + "F16": 1.13925e-20, + "F17": 64.49, + "F18": 6586.2, + "F20": 11.163, + "F21": 4.158, + "F22": 4.23, + "F23": 2.23, + "F24": 0.39, + "F25": 0.05, + "F26": 0.0096, + "F27": 0.005, + "F28": 4e-08, + "F29": 0.0025, + "F30": 2.6e-07, + "F31": 2.5e-07, + "Ne16": 3.73524e-21, + "Ne17": 0.1092, + "Ne18": 1.672, + "Ne19": 17.22, + "Ne23": 37.24, + "Ne24": 202.8, + "Ne25": 0.602, + "Ne26": 0.197, + "Ne27": 0.032, + "Ne28": 0.0189, + "Ne29": 0.0148, + "Ne30": 0.0073, + "Ne31": 0.0034, + "Ne32": 0.0035, + "Ne33": 1.8e-07, + "Ne34": 6e-08, + "Na18": 1.3e-21, + "Na19": 4e-08, + "Na20": 0.4479, + "Na21": 22.49, + "Na22": 82134970.0, + "Na24": 53989.2, + "Na24_m1": 0.02018, + "Na25": 59.1, + "Na26": 1.077, + "Na27": 0.301, + "Na28": 0.0305, + "Na29": 0.0449, + "Na30": 0.048, + "Na31": 0.017, + "Na32": 0.0132, + "Na33": 0.008, + "Na34": 0.0055, + "Na35": 0.0015, + "Na36": 1.8e-07, + "Na37": 6e-08, + "Mg19": 4e-12, + "Mg20": 0.0908, + "Mg21": 0.122, + "Mg22": 3.8755, + "Mg23": 11.317, + "Mg27": 567.48, + "Mg28": 75294.0, + "Mg29": 1.3, + "Mg30": 0.335, + "Mg31": 0.232, + "Mg32": 0.086, + "Mg33": 0.0905, + "Mg34": 0.02, + "Mg35": 0.07, + "Mg36": 0.0039, + "Mg37": 2.6e-07, + "Mg38": 2.6e-07, + "Mg39": 1.8e-07, + "Mg40": 1.7e-07, + "Al21": 3.5e-08, + "Al22": 0.059, + "Al23": 0.47, + "Al24": 2.053, + "Al24_m1": 0.13, + "Al25": 7.183, + "Al26": 22626800000000.0, + "Al26_m1": 6.3452, + "Al28": 134.484, + "Al29": 393.6, + "Al30": 3.62, + "Al31": 0.644, + "Al32": 0.033, + "Al33": 0.0417, + "Al34": 0.042, + "Al35": 0.0386, + "Al36": 0.09, + "Al37": 0.0107, + "Al38": 0.0076, + "Al39": 7.6e-06, + "Al40": 2.6e-07, + "Al41": 2.6e-07, + "Al42": 1.7e-07, + "Si22": 0.029, + "Si23": 0.0423, + "Si24": 0.14, + "Si25": 0.22, + "Si26": 2.234, + "Si27": 4.16, + "Si31": 9438.0, + "Si32": 4828310000.0, + "Si33": 6.11, + "Si34": 2.77, + "Si35": 0.78, + "Si36": 0.45, + "Si37": 0.09, + "Si38": 1e-06, + "Si39": 0.0475, + "Si40": 0.033, + "Si41": 0.02, + "Si42": 0.0125, + "Si43": 6e-08, + "Si44": 3.6e-07, + "P24": 0.0074, + "P25": 3e-08, + "P26": 0.0437, + "P27": 0.26, + "P28": 0.2703, + "P29": 4.142, + "P30": 149.88, + "P32": 1232323.0, + "P33": 2189376.0, + "P34": 12.43, + "P35": 47.3, + "P36": 5.6, + "P37": 2.31, + "P38": 0.64, + "P39": 0.28, + "P40": 0.125, + "P41": 0.1, + "P42": 0.0485, + "P43": 0.0365, + "P44": 0.0185, + "P45": 2e-07, + "P46": 2e-07, + "S26": 0.01, + "S27": 0.0155, + "S28": 0.125, + "S29": 0.187, + "S30": 1.178, + "S31": 2.572, + "S35": 7560864.0, + "S37": 303.0, + "S38": 10218.0, + "S39": 11.5, + "S40": 8.8, + "S41": 1.99, + "S42": 1.013, + "S43": 0.28, + "S44": 0.1, + "S45": 0.068, + "S46": 0.05, + "S48": 2e-07, + "S49": 2e-07, + "Cl28": 0.0017, + "Cl29": 2e-08, + "Cl30": 3e-08, + "Cl31": 0.15, + "Cl32": 0.298, + "Cl33": 2.511, + "Cl34": 1.5264, + "Cl34_m1": 1920.0, + "Cl36": 9498840000000.0, + "Cl38": 2233.8, + "Cl38_m1": 0.715, + "Cl39": 3336.0, + "Cl40": 81.0, + "Cl41": 38.4, + "Cl42": 6.8, + "Cl43": 3.13, + "Cl44": 0.56, + "Cl45": 0.413, + "Cl46": 0.232, + "Cl47": 0.101, + "Cl48": 2e-07, + "Cl49": 1.7e-07, + "Cl50": 0.02, + "Cl51": 2e-07, + "Ar30": 2e-08, + "Ar31": 0.0151, + "Ar32": 0.098, + "Ar33": 0.173, + "Ar34": 0.8445, + "Ar35": 1.775, + "Ar37": 3027456.0, + "Ar39": 8488990000.0, + "Ar41": 6576.6, + "Ar42": 1038250000.0, + "Ar43": 322.2, + "Ar44": 712.2, + "Ar45": 21.48, + "Ar46": 8.4, + "Ar47": 1.23, + "Ar48": 0.475, + "Ar49": 0.17, + "Ar50": 0.085, + "Ar51": 2e-07, + "Ar52": 0.01, + "Ar53": 0.003, + "K32": 0.0033, + "K33": 2.5e-08, + "K34": 2.5e-08, + "K35": 0.178, + "K36": 0.342, + "K37": 1.226, + "K38": 458.16, + "K38_m1": 0.924, + "K40": 3.93839e16, + "K42": 44496.0, + "K43": 80280.0, + "K44": 1327.8, + "K45": 1068.6, + "K46": 105.0, + "K47": 17.5, + "K48": 6.8, + "K49": 1.26, + "K50": 0.472, + "K51": 0.365, + "K52": 0.105, + "K53": 0.03, + "K54": 0.01, + "K55": 0.003, + "Ca34": 3.5e-08, + "Ca35": 0.0257, + "Ca36": 0.102, + "Ca37": 0.1811, + "Ca38": 0.44, + "Ca39": 0.8596, + "Ca41": 3218880000000.0, + "Ca45": 14049500.0, + "Ca47": 391910.4, + "Ca48": 7.25824e26, + "Ca49": 523.08, + "Ca50": 13.9, + "Ca51": 10.0, + "Ca52": 4.6, + "Ca53": 0.09, + "Ca54": 0.086, + "Ca55": 0.022, + "Ca56": 0.01, + "Ca57": 0.005, + "Sc36": 0.0088, + "Sc37": 0.056, + "Sc38": 0.0423, + "Sc39": 3e-07, + "Sc40": 0.1823, + "Sc41": 0.5963, + "Sc42": 0.6808, + "Sc42_m1": 62.0, + "Sc43": 14007.6, + "Sc44": 14292.0, + "Sc44_m1": 210996.0, + "Sc45_m1": 0.318, + "Sc46": 7239456.0, + "Sc46_m1": 18.75, + "Sc47": 289370.9, + "Sc48": 157212.0, + "Sc49": 3430.8, + "Sc50": 102.5, + "Sc50_m1": 0.35, + "Sc51": 12.4, + "Sc52": 8.2, + "Sc53": 3.0, + "Sc54": 0.36, + "Sc55": 0.105, + "Sc56": 0.06, + "Sc57": 0.013, + "Sc58": 0.012, + "Sc59": 0.01, + "Sc60": 0.003, + "Ti38": 1.2e-07, + "Ti39": 0.032, + "Ti40": 0.0533, + "Ti41": 0.0804, + "Ti42": 0.199, + "Ti43": 0.509, + "Ti44": 1893460000.0, + "Ti45": 11088.0, + "Ti51": 345.6, + "Ti52": 102.0, + "Ti53": 32.7, + "Ti54": 1.5, + "Ti55": 1.3, + "Ti56": 0.2, + "Ti57": 0.06, + "Ti58": 0.059, + "Ti59": 0.03, + "Ti60": 0.022, + "Ti61": 3e-07, + "Ti62": 0.01, + "Ti63": 0.003, + "V40": 0.0077, + "V41": 0.0244, + "V42": 5.5e-08, + "V43": 0.8, + "V44": 0.111, + "V44_m1": 0.15, + "V45": 0.547, + "V46": 0.4225, + "V46_m1": 0.00102, + "V47": 1956.0, + "V48": 1380110.0, + "V49": 28512000.0, + "V50": 4.41806e24, + "V52": 224.58, + "V53": 92.58, + "V54": 49.8, + "V55": 6.54, + "V56": 0.216, + "V57": 0.35, + "V58": 0.185, + "V59": 0.075, + "V60": 0.068, + "V61": 0.047, + "V62": 1.5e-07, + "V63": 0.017, + "V64": 0.019, + "V65": 0.01, + "Cr42": 0.014, + "Cr43": 0.0216, + "Cr44": 0.0535, + "Cr45": 0.0609, + "Cr46": 0.26, + "Cr47": 0.5, + "Cr48": 77616.0, + "Cr49": 2538.0, + "Cr51": 2393366.0, + "Cr55": 209.82, + "Cr56": 356.4, + "Cr57": 21.1, + "Cr58": 7.0, + "Cr59": 0.46, + "Cr60": 0.49, + "Cr61": 0.27, + "Cr62": 0.19, + "Cr63": 0.129, + "Cr64": 0.043, + "Cr65": 0.027, + "Cr66": 0.01, + "Cr67": 0.05, + "Mn44": 1.05e-07, + "Mn45": 7e-08, + "Mn46": 0.0345, + "Mn47": 0.1, + "Mn48": 0.1581, + "Mn49": 0.382, + "Mn50": 0.28319, + "Mn50_m1": 105.0, + "Mn51": 2772.0, + "Mn52": 483062.4, + "Mn52_m1": 1266.0, + "Mn53": 116763000000000.0, + "Mn54": 26961120.0, + "Mn56": 9284.04, + "Mn57": 85.4, + "Mn58": 3.0, + "Mn58_m1": 65.4, + "Mn59": 4.59, + "Mn60": 51.0, + "Mn60_m1": 1.77, + "Mn61": 0.67, + "Mn62": 0.671, + "Mn62_m1": 0.092, + "Mn63": 0.29, + "Mn64": 0.09, + "Mn65": 0.092, + "Mn66": 0.064, + "Mn67": 0.047, + "Mn68": 0.028, + "Mn69": 0.014, + "Fe45": 0.00203, + "Fe46": 0.013, + "Fe47": 0.0219, + "Fe48": 0.044, + "Fe49": 0.0647, + "Fe50": 0.155, + "Fe51": 0.305, + "Fe52": 29790.0, + "Fe52_m1": 45.9, + "Fe53": 510.6, + "Fe53_m1": 152.4, + "Fe55": 86594050.0, + "Fe59": 3844368.0, + "Fe60": 47336400000000.0, + "Fe61": 358.8, + "Fe62": 68.0, + "Fe63": 6.1, + "Fe64": 2.0, + "Fe65": 0.81, + "Fe65_m1": 1.12, + "Fe66": 0.44, + "Fe67": 0.416, + "Fe68": 0.187, + "Fe69": 0.109, + "Fe70": 0.094, + "Fe71": 0.028, + "Fe72": 1.5e-07, + "Co49": 3.5e-08, + "Co50": 0.044, + "Co51": 2e-07, + "Co52": 0.115, + "Co53": 0.24, + "Co53_m1": 0.247, + "Co54": 0.19328, + "Co54_m1": 88.8, + "Co55": 63108.0, + "Co56": 6672931.0, + "Co57": 23478340.0, + "Co58": 6122304.0, + "Co58_m1": 32760.0, + "Co60": 166344200.0, + "Co60_m1": 628.02, + "Co61": 5940.0, + "Co62": 90.0, + "Co62_m1": 834.6, + "Co63": 27.4, + "Co64": 0.3, + "Co65": 1.16, + "Co66": 0.2, + "Co67": 0.425, + "Co68": 0.199, + "Co68_m1": 1.6, + "Co69": 0.22, + "Co70": 0.119, + "Co70_m1": 0.5, + "Co71": 0.079, + "Co72": 0.0599, + "Co73": 0.041, + "Co74": 0.03, + "Co75": 0.034, + "Ni48": 0.0021, + "Ni49": 0.0075, + "Ni50": 0.012, + "Ni51": 2e-07, + "Ni52": 0.038, + "Ni53": 0.045, + "Ni54": 0.104, + "Ni55": 0.2047, + "Ni56": 524880.0, + "Ni57": 128160.0, + "Ni59": 2398380000000.0, + "Ni63": 3193630000.0, + "Ni65": 9061.884, + "Ni66": 196560.0, + "Ni67": 21.0, + "Ni68": 29.0, + "Ni69": 11.4, + "Ni69_m1": 3.5, + "Ni70": 6.0, + "Ni71": 2.56, + "Ni72": 1.57, + "Ni73": 0.84, + "Ni74": 0.68, + "Ni75": 0.6, + "Ni76": 0.238, + "Ni77": 0.061, + "Ni78": 0.11, + "Cu52": 0.0069, + "Cu53": 3e-07, + "Cu54": 7.5e-08, + "Cu55": 0.04, + "Cu56": 0.094, + "Cu57": 0.1963, + "Cu58": 3.204, + "Cu59": 81.5, + "Cu60": 1422.0, + "Cu61": 11998.8, + "Cu62": 580.38, + "Cu64": 45723.6, + "Cu66": 307.2, + "Cu67": 222588.0, + "Cu68": 31.1, + "Cu68_m1": 225.0, + "Cu69": 171.0, + "Cu70": 44.5, + "Cu70_m1": 33.0, + "Cu70_m2": 6.6, + "Cu71": 19.5, + "Cu72": 6.63, + "Cu73": 4.2, + "Cu74": 1.75, + "Cu75": 1.224, + "Cu76": 0.653, + "Cu76_m1": 1.27, + "Cu77": 0.469, + "Cu78": 0.335, + "Cu79": 0.188, + "Cu80": 0.17, + "Cu81": 0.028, + "Zn54": 0.0037, + "Zn55": 0.02, + "Zn56": 5e-07, + "Zn57": 0.038, + "Zn58": 0.084, + "Zn59": 0.182, + "Zn60": 142.8, + "Zn61": 89.1, + "Zn61_m1": 0.43, + "Zn61_m2": 0.14, + "Zn62": 33336.0, + "Zn63": 2308.2, + "Zn65": 21075550.0, + "Zn69": 3384.0, + "Zn69_m1": 49536.0, + "Zn71": 147.0, + "Zn71_m1": 14256.0, + "Zn72": 167400.0, + "Zn73": 23.5, + "Zn73_m1": 5.8, + "Zn73_m2": 0.013, + "Zn74": 95.6, + "Zn75": 10.2, + "Zn76": 5.7, + "Zn77": 2.08, + "Zn77_m1": 1.05, + "Zn78": 1.47, + "Zn79": 0.995, + "Zn80": 0.54, + "Zn81": 0.32, + "Zn82": 0.052, + "Zn83": 0.043, + "Ga56": 0.0059, + "Ga57": 0.0123, + "Ga58": 0.0152, + "Ga59": 0.0418, + "Ga60": 0.07, + "Ga61": 0.168, + "Ga62": 0.11612, + "Ga63": 32.4, + "Ga64": 157.62, + "Ga65": 912.0, + "Ga66": 34164.0, + "Ga67": 281810.9, + "Ga68": 4062.6, + "Ga70": 1268.4, + "Ga72": 50760.0, + "Ga72_m1": 0.03968, + "Ga73": 17496.0, + "Ga74": 487.2, + "Ga74_m1": 9.5, + "Ga75": 126.0, + "Ga76": 32.6, + "Ga77": 13.2, + "Ga78": 5.09, + "Ga79": 2.847, + "Ga80": 1.676, + "Ga81": 1.217, + "Ga82": 0.599, + "Ga83": 0.3081, + "Ga84": 0.085, + "Ga85": 0.048, + "Ga86": 0.029, + "Ge58": 0.0152, + "Ge59": 0.0418, + "Ge60": 0.03, + "Ge61": 0.039, + "Ge62": 1.5e-07, + "Ge63": 0.142, + "Ge64": 63.7, + "Ge65": 30.9, + "Ge66": 8136.0, + "Ge67": 1134.0, + "Ge68": 23410080.0, + "Ge69": 140580.0, + "Ge71": 987552.0, + "Ge71_m1": 0.02041, + "Ge73_m1": 0.499, + "Ge75": 4966.8, + "Ge75_m1": 47.7, + "Ge77": 40680.0, + "Ge77_m1": 52.9, + "Ge78": 5280.0, + "Ge79": 18.98, + "Ge79_m1": 39.0, + "Ge80": 29.5, + "Ge81": 7.6, + "Ge81_m1": 7.6, + "Ge82": 4.55, + "Ge83": 1.85, + "Ge84": 0.954, + "Ge85": 0.535, + "Ge86": 0.095, + "Ge87": 0.14, + "Ge88": 0.066, + "Ge89": 0.039, + "As60": 0.0083, + "As61": 0.0166, + "As62": 0.0259, + "As63": 0.0921, + "As64": 0.036, + "As65": 0.128, + "As66": 0.09579, + "As67": 42.5, + "As68": 151.6, + "As69": 913.8, + "As70": 3156.0, + "As71": 235080.0, + "As72": 93600.0, + "As73": 6937920.0, + "As74": 1535328.0, + "As75_m1": 0.01762, + "As76": 94464.0, + "As77": 139788.0, + "As78": 5442.0, + "As79": 540.6, + "As80": 15.2, + "As81": 33.3, + "As82": 19.1, + "As82_m1": 13.6, + "As83": 13.4, + "As84": 4.2, + "As85": 2.021, + "As86": 0.945, + "As87": 0.56, + "As88": 0.112, + "As89": 0.059, + "As90": 0.043, + "As91": 0.044, + "As92": 0.027, + "Se65": 0.05, + "Se66": 0.033, + "Se67": 0.136, + "Se68": 35.5, + "Se69": 27.4, + "Se70": 2466.0, + "Se71": 284.4, + "Se72": 725760.0, + "Se73": 25740.0, + "Se73_m1": 2388.0, + "Se75": 10349860.0, + "Se77_m1": 17.36, + "Se79": 9309490000000.0, + "Se79_m1": 235.2, + "Se81": 1107.0, + "Se81_m1": 3436.8, + "Se83": 1338.0, + "Se83_m1": 70.1, + "Se84": 195.6, + "Se85": 31.7, + "Se86": 14.3, + "Se87": 5.5, + "Se88": 1.53, + "Se89": 0.41, + "Se90": 0.161, + "Se91": 0.27, + "Se92": 0.093, + "Se93": 0.062, + "Se94": 0.059, + "Br67": 0.0443, + "Br68": 1.2e-06, + "Br69": 2.4e-08, + "Br70": 0.0791, + "Br70_m1": 2.2, + "Br71": 21.4, + "Br72": 78.6, + "Br72_m1": 10.6, + "Br73": 204.0, + "Br74": 1524.0, + "Br74_m1": 2760.0, + "Br75": 5802.0, + "Br76": 58320.0, + "Br76_m1": 1.31, + "Br77": 205329.6, + "Br77_m1": 256.8, + "Br78": 387.0, + "Br79_m1": 4.86, + "Br80": 1060.8, + "Br80_m1": 15913.8, + "Br82": 127015.2, + "Br82_m1": 367.8, + "Br83": 8640.0, + "Br84": 1905.6, + "Br84_m1": 360.0, + "Br85": 174.0, + "Br86": 55.0, + "Br87": 55.65, + "Br88": 16.29, + "Br89": 4.4, + "Br90": 1.92, + "Br91": 0.541, + "Br92": 0.343, + "Br93": 0.102, + "Br94": 0.07, + "Br95": 0.066, + "Br96": 0.042, + "Br97": 0.04, + "Kr69": 0.032, + "Kr70": 0.052, + "Kr71": 0.1, + "Kr72": 17.1, + "Kr73": 27.3, + "Kr74": 690.0, + "Kr75": 257.4, + "Kr76": 53280.0, + "Kr77": 4464.0, + "Kr79": 126144.0, + "Kr79_m1": 50.0, + "Kr81": 7226690000000.0, + "Kr81_m1": 13.1, + "Kr83_m1": 6588.0, + "Kr85": 339433500.0, + "Kr85_m1": 16128.0, + "Kr87": 4578.0, + "Kr88": 10224.0, + "Kr89": 189.0, + "Kr90": 32.32, + "Kr91": 8.57, + "Kr92": 1.84, + "Kr93": 1.286, + "Kr94": 0.212, + "Kr95": 0.114, + "Kr96": 0.08, + "Kr97": 0.063, + "Kr98": 0.046, + "Kr99": 0.027, + "Kr100": 0.007, + "Rb71": 1e-09, + "Rb72": 1.2e-06, + "Rb73": 3e-08, + "Rb74": 0.064776, + "Rb75": 19.0, + "Rb76": 36.5, + "Rb77": 226.2, + "Rb78": 1059.6, + "Rb78_m1": 344.4, + "Rb79": 1374.0, + "Rb80": 34.0, + "Rb81": 16459.2, + "Rb81_m1": 1830.0, + "Rb82": 75.45, + "Rb82_m1": 23299.2, + "Rb83": 7447680.0, + "Rb84": 2835648.0, + "Rb84_m1": 1215.6, + "Rb86": 1609718.0, + "Rb86_m1": 61.02, + "Rb87": 1.51792e18, + "Rb88": 1066.38, + "Rb89": 909.0, + "Rb90": 158.0, + "Rb90_m1": 258.0, + "Rb91": 58.4, + "Rb92": 4.492, + "Rb93": 5.84, + "Rb94": 2.702, + "Rb95": 0.3777, + "Rb96": 0.203, + "Rb97": 0.1691, + "Rb98": 0.114, + "Rb98_m1": 0.096, + "Rb99": 0.054, + "Rb100": 0.051, + "Rb101": 0.032, + "Rb102": 0.037, + "Sr73": 0.025, + "Sr74": 1.2e-06, + "Sr75": 0.088, + "Sr76": 7.89, + "Sr77": 9.0, + "Sr78": 150.0, + "Sr79": 135.0, + "Sr80": 6378.0, + "Sr81": 1338.0, + "Sr82": 2190240.0, + "Sr83": 116676.0, + "Sr83_m1": 4.95, + "Sr85": 5602176.0, + "Sr85_m1": 4057.8, + "Sr87_m1": 10134.0, + "Sr89": 4365792.0, + "Sr90": 908543300.0, + "Sr91": 34668.0, + "Sr92": 9756.0, + "Sr93": 445.38, + "Sr94": 75.3, + "Sr95": 23.9, + "Sr96": 1.07, + "Sr97": 0.429, + "Sr98": 0.653, + "Sr99": 0.27, + "Sr100": 0.202, + "Sr101": 0.118, + "Sr102": 0.069, + "Sr103": 0.068, + "Sr104": 0.043, + "Sr105": 0.0556, + "Y76": 2e-07, + "Y77": 0.062, + "Y78": 0.05, + "Y78_m1": 5.7, + "Y79": 14.8, + "Y80": 30.1, + "Y80_m1": 4.8, + "Y81": 70.4, + "Y82": 8.3, + "Y83": 424.8, + "Y83_m1": 171.0, + "Y84": 2370.0, + "Y84_m1": 4.6, + "Y85": 9648.0, + "Y85_m1": 17496.0, + "Y86": 53064.0, + "Y86_m1": 2880.0, + "Y87": 287280.0, + "Y87_m1": 48132.0, + "Y88": 9212486.0, + "Y88_m1": 0.000301, + "Y88_m2": 0.01397, + "Y89_m1": 15.663, + "Y90": 230400.0, + "Y90_m1": 11484.0, + "Y91": 5055264.0, + "Y91_m1": 2982.6, + "Y92": 12744.0, + "Y93": 36648.0, + "Y93_m1": 0.82, + "Y94": 1122.0, + "Y95": 618.0, + "Y96": 5.34, + "Y96_m1": 9.6, + "Y97": 3.75, + "Y97_m1": 1.17, + "Y97_m2": 0.142, + "Y98": 0.548, + "Y98_m1": 2.0, + "Y99": 1.47, + "Y100": 0.735, + "Y100_m1": 0.94, + "Y101": 0.45, + "Y102": 0.36, + "Y102_m1": 0.298, + "Y103": 0.23, + "Y104": 0.18, + "Y105": 0.088, + "Y106": 0.066, + "Y107": 0.03, + "Y108": 0.048, + "Zr78": 2e-07, + "Zr79": 0.056, + "Zr80": 4.6, + "Zr81": 5.5, + "Zr82": 32.0, + "Zr83": 41.6, + "Zr84": 1554.0, + "Zr85": 471.6, + "Zr85_m1": 10.9, + "Zr86": 59400.0, + "Zr87": 6048.0, + "Zr87_m1": 14.0, + "Zr88": 7205760.0, + "Zr89": 282276.0, + "Zr89_m1": 249.66, + "Zr90_m1": 0.8092, + "Zr93": 48283100000000.0, + "Zr95": 5532365.0, + "Zr96": 6.31152e26, + "Zr97": 60296.4, + "Zr98": 30.7, + "Zr99": 2.1, + "Zr100": 7.1, + "Zr101": 2.3, + "Zr102": 2.9, + "Zr103": 1.3, + "Zr104": 1.2, + "Zr105": 0.6, + "Zr106": 0.27, + "Zr107": 0.15, + "Zr108": 0.08, + "Zr109": 0.117, + "Zr110": 0.098, + "Nb81": 0.8, + "Nb82": 0.05, + "Nb83": 4.1, + "Nb84": 9.8, + "Nb85": 20.9, + "Nb85_m1": 3.3, + "Nb86": 88.0, + "Nb87": 225.0, + "Nb87_m1": 156.0, + "Nb88": 873.0, + "Nb88_m1": 466.8, + "Nb89": 7308.0, + "Nb89_m1": 3960.0, + "Nb90": 52560.0, + "Nb90_m1": 18.81, + "Nb90_m2": 0.00619, + "Nb91": 21459200000.0, + "Nb91_m1": 5258304.0, + "Nb92": 1095050000000000.0, + "Nb92_m1": 876960.0, + "Nb93_m1": 509024100.0, + "Nb94": 640619000000.0, + "Nb94_m1": 375.78, + "Nb95": 3023222.0, + "Nb95_m1": 311904.0, + "Nb96": 84060.0, + "Nb97": 4326.0, + "Nb97_m1": 58.7, + "Nb98": 2.86, + "Nb98_m1": 3078.0, + "Nb99": 15.0, + "Nb99_m1": 150.0, + "Nb100": 1.5, + "Nb100_m1": 2.99, + "Nb101": 7.1, + "Nb102": 4.3, + "Nb102_m1": 1.3, + "Nb103": 1.5, + "Nb104": 4.9, + "Nb104_m1": 0.94, + "Nb105": 2.95, + "Nb106": 0.93, + "Nb107": 0.3, + "Nb108": 0.193, + "Nb109": 0.19, + "Nb110": 0.17, + "Nb111": 0.08, + "Nb112": 0.069, + "Nb113": 0.03, + "Mo83": 0.0195, + "Mo84": 3.8, + "Mo85": 3.2, + "Mo86": 19.6, + "Mo87": 14.02, + "Mo88": 480.0, + "Mo89": 126.6, + "Mo89_m1": 0.19, + "Mo90": 20412.0, + "Mo91": 929.4, + "Mo91_m1": 64.6, + "Mo93": 126230000000.0, + "Mo93_m1": 24660.0, + "Mo99": 237513.6, + "Mo100": 2.3037e26, + "Mo101": 876.6, + "Mo102": 678.0, + "Mo103": 67.5, + "Mo104": 60.0, + "Mo105": 35.6, + "Mo106": 8.73, + "Mo107": 3.5, + "Mo108": 1.09, + "Mo109": 0.53, + "Mo110": 0.3, + "Mo111": 0.2, + "Mo112": 0.287, + "Mo113": 0.1, + "Mo114": 0.08, + "Mo115": 0.092, + "Tc85": 0.5, + "Tc86": 0.054, + "Tc86_m1": 1.1e-06, + "Tc87": 2.2, + "Tc88": 5.8, + "Tc88_m1": 6.4, + "Tc89": 12.8, + "Tc89_m1": 12.9, + "Tc90": 8.7, + "Tc90_m1": 49.2, + "Tc91": 188.4, + "Tc91_m1": 198.0, + "Tc92": 255.0, + "Tc93": 9900.0, + "Tc93_m1": 2610.0, + "Tc94": 17580.0, + "Tc94_m1": 3120.0, + "Tc95": 72000.0, + "Tc95_m1": 5270400.0, + "Tc96": 369792.0, + "Tc96_m1": 3090.0, + "Tc97": 132857000000000.0, + "Tc97_m1": 7862400.0, + "Tc98": 132542000000000.0, + "Tc99": 6661810000000.0, + "Tc99_m1": 21624.12, + "Tc100": 15.46, + "Tc101": 852.0, + "Tc102": 5.28, + "Tc102_m1": 261.0, + "Tc103": 54.2, + "Tc104": 1098.0, + "Tc105": 456.0, + "Tc106": 35.6, + "Tc107": 21.2, + "Tc108": 5.17, + "Tc109": 0.86, + "Tc110": 0.92, + "Tc111": 0.29, + "Tc112": 0.28, + "Tc113": 0.16, + "Tc114": 0.15, + "Tc115": 0.073, + "Tc116": 0.09, + "Tc117": 0.04, + "Tc118": 0.066, + "Ru87": 1.5e-06, + "Ru88": 1.25, + "Ru89": 1.5, + "Ru90": 11.7, + "Ru91": 7.9, + "Ru91_m1": 7.6, + "Ru92": 219.0, + "Ru93": 59.7, + "Ru93_m1": 10.8, + "Ru94": 3108.0, + "Ru95": 5914.8, + "Ru97": 244512.0, + "Ru103": 3390941.0, + "Ru103_m1": 0.00169, + "Ru105": 15984.0, + "Ru106": 32123520.0, + "Ru107": 225.0, + "Ru108": 273.0, + "Ru109": 34.5, + "Ru110": 11.6, + "Ru111": 2.12, + "Ru112": 1.75, + "Ru113": 0.8, + "Ru113_m1": 0.51, + "Ru114": 0.52, + "Ru115": 0.74, + "Ru116": 0.204, + "Ru117": 0.142, + "Ru118": 0.123, + "Ru119": 0.162, + "Ru120": 0.149, + "Rh89": 1.5e-06, + "Rh90": 0.0145, + "Rh90_m1": 1.05, + "Rh91": 1.47, + "Rh92": 4.66, + "Rh93": 11.9, + "Rh94": 70.6, + "Rh94_m1": 25.8, + "Rh95": 301.2, + "Rh95_m1": 117.6, + "Rh96": 594.0, + "Rh96_m1": 90.6, + "Rh97": 1842.0, + "Rh97_m1": 2772.0, + "Rh98": 523.2, + "Rh98_m1": 216.0, + "Rh99": 1391040.0, + "Rh99_m1": 16920.0, + "Rh100": 74880.0, + "Rh100_m1": 276.0, + "Rh101": 104140100.0, + "Rh101_m1": 374976.0, + "Rh102": 17910720.0, + "Rh102_m1": 118088500.0, + "Rh103_m1": 3366.84, + "Rh104": 42.3, + "Rh104_m1": 260.4, + "Rh105": 127296.0, + "Rh105_m1": 40.0, + "Rh106": 30.07, + "Rh106_m1": 7860.0, + "Rh107": 1302.0, + "Rh108": 16.8, + "Rh108_m1": 360.0, + "Rh109": 80.0, + "Rh110": 3.2, + "Rh110_m1": 28.5, + "Rh111": 11.0, + "Rh112": 2.1, + "Rh112_m1": 6.73, + "Rh113": 2.8, + "Rh114": 1.85, + "Rh115": 0.99, + "Rh116": 0.68, + "Rh116_m1": 0.57, + "Rh117": 0.44, + "Rh118": 0.266, + "Rh119": 0.171, + "Rh120": 0.136, + "Rh121": 0.151, + "Rh122": 0.108, + "Rh123": 0.0489, + "Pd91": 1e-06, + "Pd92": 0.8, + "Pd93": 1.3, + "Pd94": 9.0, + "Pd95": 10.0, + "Pd95_m1": 13.3, + "Pd96": 122.0, + "Pd97": 186.0, + "Pd98": 1062.0, + "Pd99": 1284.0, + "Pd100": 313632.0, + "Pd101": 30492.0, + "Pd103": 1468022.0, + "Pd107": 205124000000000.0, + "Pd107_m1": 21.3, + "Pd109": 49324.32, + "Pd109_m1": 281.4, + "Pd111": 1404.0, + "Pd111_m1": 19800.0, + "Pd112": 75708.0, + "Pd113": 93.0, + "Pd113_m1": 0.3, + "Pd114": 145.2, + "Pd115": 25.0, + "Pd115_m1": 50.0, + "Pd116": 11.8, + "Pd117": 4.3, + "Pd117_m1": 0.0191, + "Pd118": 1.9, + "Pd119": 0.92, + "Pd120": 0.5, + "Pd121": 0.285, + "Pd122": 0.175, + "Pd123": 0.244, + "Pd124": 0.038, + "Pd125": 0.3987, + "Pd126": 0.2499, + "Ag93": 1.5e-06, + "Ag94": 0.035, + "Ag94_m1": 0.55, + "Ag94_m2": 0.4, + "Ag95": 2.0, + "Ag95_m1": 0.5, + "Ag95_m2": 0.016, + "Ag95_m3": 0.04, + "Ag96": 4.4, + "Ag96_m1": 6.9, + "Ag97": 25.5, + "Ag98": 47.5, + "Ag99": 124.0, + "Ag99_m1": 10.5, + "Ag100": 120.6, + "Ag100_m1": 134.4, + "Ag101": 666.0, + "Ag101_m1": 3.1, + "Ag102": 774.0, + "Ag102_m1": 462.0, + "Ag103": 3942.0, + "Ag103_m1": 5.7, + "Ag104": 4152.0, + "Ag104_m1": 2010.0, + "Ag105": 3567456.0, + "Ag105_m1": 433.8, + "Ag106": 1437.6, + "Ag106_m1": 715392.0, + "Ag107_m1": 44.3, + "Ag108": 142.92, + "Ag108_m1": 13822200000.0, + "Ag109_m1": 39.6, + "Ag110": 24.6, + "Ag110_m1": 21579260.0, + "Ag111": 643680.0, + "Ag111_m1": 64.8, + "Ag112": 11268.0, + "Ag113": 19332.0, + "Ag113_m1": 68.7, + "Ag114": 4.6, + "Ag114_m1": 0.0015, + "Ag115": 1200.0, + "Ag115_m1": 18.0, + "Ag116": 237.0, + "Ag116_m1": 20.0, + "Ag116_m2": 9.3, + "Ag117": 72.8, + "Ag117_m1": 5.34, + "Ag118": 3.76, + "Ag118_m1": 2.0, + "Ag119": 2.1, + "Ag119_m1": 6.0, + "Ag120": 1.23, + "Ag120_m1": 0.32, + "Ag121": 0.78, + "Ag122": 0.529, + "Ag122_m1": 0.2, + "Ag123": 0.3, + "Ag124": 0.172, + "Ag125": 0.166, + "Ag126": 0.107, + "Ag127": 0.109, + "Ag128": 0.058, + "Ag129": 0.046, + "Ag130": 0.05, + "Cd95": 0.005, + "Cd96": 1.0, + "Cd97": 2.8, + "Cd98": 9.2, + "Cd99": 16.0, + "Cd100": 49.1, + "Cd101": 81.6, + "Cd102": 330.0, + "Cd103": 438.0, + "Cd104": 3462.0, + "Cd105": 3330.0, + "Cd107": 23400.0, + "Cd109": 39864960.0, + "Cd111_m1": 2912.4, + "Cd113": 2.53723e23, + "Cd113_m1": 444962200.0, + "Cd115": 192456.0, + "Cd115_m1": 3849984.0, + "Cd116": 9.78286e26, + "Cd117": 8964.0, + "Cd117_m1": 12096.0, + "Cd118": 3018.0, + "Cd119": 161.4, + "Cd119_m1": 132.0, + "Cd120": 50.8, + "Cd121": 13.5, + "Cd121_m1": 8.3, + "Cd122": 5.24, + "Cd123": 2.1, + "Cd123_m1": 1.82, + "Cd124": 1.25, + "Cd125": 0.68, + "Cd125_m1": 0.48, + "Cd126": 0.515, + "Cd127": 0.37, + "Cd128": 0.28, + "Cd129": 0.27, + "Cd130": 0.162, + "Cd131": 0.068, + "Cd132": 0.097, + "In97": 0.005, + "In98": 0.0425, + "In98_m1": 1.6, + "In99": 3.05, + "In100": 5.9, + "In101": 15.1, + "In102": 23.3, + "In103": 65.0, + "In103_m1": 34.0, + "In104": 108.0, + "In104_m1": 15.7, + "In105": 304.2, + "In105_m1": 48.0, + "In106": 372.0, + "In106_m1": 312.0, + "In107": 1944.0, + "In107_m1": 50.4, + "In108": 3480.0, + "In108_m1": 2376.0, + "In109": 15001.2, + "In109_m1": 80.4, + "In109_m2": 0.209, + "In110": 17640.0, + "In110_m1": 4146.0, + "In111": 242326.1, + "In111_m1": 462.0, + "In112": 898.2, + "In112_m1": 1233.6, + "In113_m1": 5968.56, + "In114": 71.9, + "In114_m1": 4277664.0, + "In114_m2": 0.0431, + "In115": 1.39169e22, + "In115_m1": 16149.6, + "In116": 14.1, + "In116_m1": 3257.4, + "In116_m2": 2.18, + "In117": 2592.0, + "In117_m1": 6972.0, + "In118": 5.0, + "In118_m1": 267.0, + "In118_m2": 8.5, + "In119": 144.0, + "In119_m1": 1080.0, + "In120": 3.08, + "In120_m1": 46.2, + "In120_m2": 47.3, + "In121": 23.1, + "In121_m1": 232.8, + "In122": 1.5, + "In122_m1": 10.3, + "In122_m2": 10.8, + "In123": 6.17, + "In123_m1": 47.4, + "In124": 3.12, + "In124_m1": 3.7, + "In125": 2.36, + "In125_m1": 12.2, + "In126": 1.53, + "In126_m1": 1.64, + "In127": 1.09, + "In127_m1": 3.67, + "In128": 0.84, + "In128_m1": 0.72, + "In129": 0.61, + "In129_m1": 1.23, + "In130": 0.29, + "In130_m1": 0.54, + "In130_m2": 0.54, + "In131": 0.28, + "In131_m1": 0.35, + "In131_m2": 0.32, + "In132": 0.207, + "In133": 0.165, + "In133_m1": 0.18, + "In134": 0.14, + "In135": 0.092, + "Sn99": 0.005, + "Sn100": 0.86, + "Sn101": 1.7, + "Sn102": 4.5, + "Sn103": 7.0, + "Sn104": 20.8, + "Sn105": 34.0, + "Sn106": 115.0, + "Sn107": 174.0, + "Sn108": 618.0, + "Sn109": 1080.0, + "Sn110": 14796.0, + "Sn111": 2118.0, + "Sn113": 9943776.0, + "Sn113_m1": 1284.0, + "Sn117_m1": 1175040.0, + "Sn119_m1": 25315200.0, + "Sn121": 97308.0, + "Sn121_m1": 1385380000.0, + "Sn123": 11162880.0, + "Sn123_m1": 2403.6, + "Sn125": 832896.0, + "Sn125_m1": 571.2, + "Sn126": 7258250000000.0, + "Sn127": 7560.0, + "Sn127_m1": 247.8, + "Sn128": 3544.2, + "Sn128_m1": 6.5, + "Sn129": 133.8, + "Sn129_m1": 414.0, + "Sn130": 223.2, + "Sn130_m1": 102.0, + "Sn131": 56.0, + "Sn131_m1": 58.4, + "Sn132": 39.7, + "Sn133": 1.46, + "Sn134": 1.05, + "Sn135": 0.53, + "Sn136": 0.25, + "Sn137": 0.19, + "Sb103": 1.5e-06, + "Sb104": 0.46, + "Sb105": 1.22, + "Sb106": 0.6, + "Sb107": 4.0, + "Sb108": 7.4, + "Sb109": 17.0, + "Sb110": 23.0, + "Sb111": 75.0, + "Sb112": 51.4, + "Sb113": 400.2, + "Sb114": 209.4, + "Sb115": 1926.0, + "Sb116": 948.0, + "Sb116_m1": 3618.0, + "Sb117": 10080.0, + "Sb118": 216.0, + "Sb118_m1": 18000.0, + "Sb119": 137484.0, + "Sb119_m1": 0.85, + "Sb120": 953.4, + "Sb120_m1": 497664.0, + "Sb122": 235336.3, + "Sb122_m1": 251.46, + "Sb124": 5201280.0, + "Sb124_m1": 93.0, + "Sb124_m2": 1212.0, + "Sb125": 87053530.0, + "Sb126": 1067040.0, + "Sb126_m1": 1149.0, + "Sb126_m2": 11.0, + "Sb127": 332640.0, + "Sb128": 32436.0, + "Sb128_m1": 624.0, + "Sb129": 15840.0, + "Sb129_m1": 1062.0, + "Sb130": 2370.0, + "Sb130_m1": 378.0, + "Sb131": 1381.8, + "Sb132": 167.4, + "Sb132_m1": 246.0, + "Sb133": 150.0, + "Sb134": 0.78, + "Sb134_m1": 10.07, + "Sb135": 1.679, + "Sb136": 0.923, + "Sb137": 0.45, + "Sb138": 0.168, + "Sb139": 0.127, + "Te105": 6.2e-07, + "Te106": 6e-05, + "Te107": 0.0031, + "Te108": 2.1, + "Te109": 4.6, + "Te110": 18.6, + "Te111": 19.3, + "Te112": 120.0, + "Te113": 102.0, + "Te114": 912.0, + "Te115": 348.0, + "Te115_m1": 402.0, + "Te116": 8964.0, + "Te117": 3720.0, + "Te117_m1": 0.103, + "Te118": 518400.0, + "Te119": 57780.0, + "Te119_m1": 406080.0, + "Te121": 1656288.0, + "Te121_m1": 14186880.0, + "Te123_m1": 10298880.0, + "Te125_m1": 4959360.0, + "Te127": 33660.0, + "Te127_m1": 9417600.0, + "Te128": 2.77707e26, + "Te129": 4176.0, + "Te129_m1": 2903040.0, + "Te131": 1500.0, + "Te131_m1": 119700.0, + "Te132": 276825.6, + "Te133": 750.0, + "Te133_m1": 3324.0, + "Te134": 2508.0, + "Te135": 19.0, + "Te136": 17.5, + "Te137": 2.49, + "Te138": 1.4, + "Te139": 0.347, + "Te140": 0.304, + "Te141": 0.213, + "Te142": 0.2, + "I108": 0.036, + "I109": 0.000103, + "I110": 0.65, + "I111": 2.5, + "I112": 3.42, + "I113": 6.6, + "I114": 2.1, + "I114_m1": 6.2, + "I115": 78.0, + "I116": 2.91, + "I117": 133.2, + "I118": 822.0, + "I118_m1": 510.0, + "I119": 1146.0, + "I120": 4896.0, + "I120_m1": 3180.0, + "I121": 7632.0, + "I122": 217.8, + "I123": 47604.24, + "I124": 360806.4, + "I125": 5132160.0, + "I126": 1117152.0, + "I128": 1499.4, + "I129": 495454000000000.0, + "I130": 44496.0, + "I130_m1": 530.4, + "I131": 693377.3, + "I132": 8262.0, + "I132_m1": 4993.2, + "I133": 74880.0, + "I133_m1": 9.0, + "I134": 3150.0, + "I134_m1": 211.2, + "I135": 23652.0, + "I136": 83.4, + "I136_m1": 46.9, + "I137": 24.5, + "I138": 6.23, + "I139": 2.28, + "I140": 0.86, + "I141": 0.43, + "I142": 0.222, + "I143": 0.296, + "I144": 0.194, + "I145": 0.127, + "Xe110": 0.093, + "Xe111": 0.81, + "Xe112": 2.7, + "Xe113": 2.74, + "Xe114": 10.0, + "Xe115": 18.0, + "Xe116": 59.0, + "Xe117": 61.0, + "Xe118": 228.0, + "Xe119": 348.0, + "Xe120": 2400.0, + "Xe121": 2406.0, + "Xe122": 72360.0, + "Xe123": 7488.0, + "Xe125": 60840.0, + "Xe125_m1": 56.9, + "Xe127": 3144960.0, + "Xe127_m1": 69.2, + "Xe129_m1": 767232.0, + "Xe131_m1": 1022976.0, + "Xe132_m1": 0.00839, + "Xe133": 452995.2, + "Xe133_m1": 189216.0, + "Xe134_m1": 0.29, + "Xe135": 32904.0, + "Xe135_m1": 917.4, + "Xe137": 229.08, + "Xe138": 844.8, + "Xe139": 39.68, + "Xe140": 13.6, + "Xe141": 1.73, + "Xe142": 1.23, + "Xe143": 0.3, + "Xe144": 1.15, + "Xe145": 0.188, + "Xe146": 0.369, + "Xe147": 0.1, + "Cs112": 0.0005, + "Cs113": 1.67e-05, + "Cs114": 0.57, + "Cs115": 1.4, + "Cs116": 0.7, + "Cs116_m1": 3.85, + "Cs117": 8.4, + "Cs117_m1": 6.5, + "Cs118": 14.0, + "Cs118_m1": 17.0, + "Cs119": 43.0, + "Cs119_m1": 30.4, + "Cs120": 61.3, + "Cs120_m1": 57.0, + "Cs121": 155.0, + "Cs121_m1": 122.0, + "Cs122": 21.18, + "Cs122_m1": 0.36, + "Cs122_m2": 222.0, + "Cs123": 352.8, + "Cs123_m1": 1.64, + "Cs124": 30.8, + "Cs124_m1": 6.3, + "Cs125": 2802.0, + "Cs125_m1": 0.0009, + "Cs126": 98.4, + "Cs127": 22500.0, + "Cs128": 217.2, + "Cs129": 115416.0, + "Cs130": 1752.6, + "Cs130_m1": 207.6, + "Cs131": 837129.6, + "Cs132": 559872.0, + "Cs134": 65172760.0, + "Cs134_m1": 10483.2, + "Cs135": 72582500000000.0, + "Cs135_m1": 3180.0, + "Cs136": 1137024.0, + "Cs136_m1": 19.0, + "Cs137": 949252600.0, + "Cs138": 2004.6, + "Cs138_m1": 174.6, + "Cs139": 556.2, + "Cs140": 63.7, + "Cs141": 24.84, + "Cs142": 1.684, + "Cs143": 1.791, + "Cs144": 0.994, + "Cs144_m1": 1.0, + "Cs145": 0.587, + "Cs146": 0.321, + "Cs147": 0.23, + "Cs148": 0.146, + "Cs149": 0.05, + "Cs150": 0.05, + "Cs151": 0.05, + "Ba114": 0.43, + "Ba115": 0.45, + "Ba116": 1.3, + "Ba117": 1.75, + "Ba118": 5.5, + "Ba119": 5.4, + "Ba120": 24.0, + "Ba121": 29.7, + "Ba122": 117.0, + "Ba123": 162.0, + "Ba124": 660.0, + "Ba125": 210.0, + "Ba126": 6000.0, + "Ba127": 762.0, + "Ba127_m1": 1.9, + "Ba128": 209952.0, + "Ba129": 8028.0, + "Ba129_m1": 7776.0, + "Ba130_m1": 0.0094, + "Ba131": 993600.0, + "Ba131_m1": 876.0, + "Ba133": 331862400.0, + "Ba133_m1": 140040.0, + "Ba135_m1": 103320.0, + "Ba136_m1": 0.3084, + "Ba137_m1": 153.12, + "Ba139": 4983.6, + "Ba140": 1101833.0, + "Ba141": 1096.2, + "Ba142": 636.0, + "Ba143": 14.5, + "Ba144": 11.5, + "Ba145": 4.31, + "Ba146": 2.22, + "Ba147": 0.894, + "Ba148": 0.612, + "Ba149": 0.344, + "Ba150": 0.3, + "Ba151": 0.259, + "Ba152": 0.228, + "Ba153": 0.158, + "La117": 0.0235, + "La117_m1": 0.01, + "La118": 1.0, + "La119": 2.0, + "La120": 2.8, + "La121": 5.3, + "La122": 8.6, + "La123": 17.0, + "La124": 29.21, + "La124_m1": 21.0, + "La125": 64.8, + "La125_m1": 0.4, + "La126": 54.0, + "La126_m1": 50.0, + "La127": 306.0, + "La127_m1": 222.0, + "La128": 310.8, + "La128_m1": 60.0, + "La129": 696.0, + "La129_m1": 0.56, + "La130": 522.0, + "La131": 3540.0, + "La132": 17280.0, + "La132_m1": 1458.0, + "La133": 14083.2, + "La134": 387.0, + "La135": 70200.0, + "La136": 592.2, + "La136_m1": 0.114, + "La137": 1893460000000.0, + "La138": 3.21888e18, + "La140": 145026.7, + "La141": 14112.0, + "La142": 5466.0, + "La143": 852.0, + "La144": 40.8, + "La145": 24.8, + "La146": 6.27, + "La146_m1": 10.0, + "La147": 4.06, + "La148": 1.26, + "La149": 1.05, + "La150": 0.86, + "La151": 0.778, + "La152": 0.451, + "La153": 0.342, + "La154": 0.228, + "La155": 0.184, + "Ce119": 0.2, + "Ce120": 0.25, + "Ce121": 1.1, + "Ce122": 2.73, + "Ce123": 3.8, + "Ce124": 6.0, + "Ce125": 10.2, + "Ce126": 51.0, + "Ce127": 31.0, + "Ce127_m1": 28.6, + "Ce128": 235.8, + "Ce129": 210.0, + "Ce130": 1374.0, + "Ce131": 618.0, + "Ce131_m1": 324.0, + "Ce132": 12636.0, + "Ce132_m1": 0.0094, + "Ce133": 5820.0, + "Ce133_m1": 17640.0, + "Ce134": 273024.0, + "Ce135": 63720.0, + "Ce135_m1": 20.0, + "Ce137": 32400.0, + "Ce137_m1": 123840.0, + "Ce138_m1": 0.00865, + "Ce139": 11892180.0, + "Ce139_m1": 54.8, + "Ce141": 2808691.0, + "Ce143": 118940.4, + "Ce144": 24616220.0, + "Ce145": 180.6, + "Ce146": 811.2, + "Ce147": 56.4, + "Ce148": 56.0, + "Ce149": 5.3, + "Ce150": 4.0, + "Ce151": 1.76, + "Ce152": 1.4, + "Ce153": 0.979, + "Ce154": 0.775, + "Ce155": 0.471, + "Ce156": 0.369, + "Ce157": 0.2428, + "Pr121": 1.4, + "Pr122": 0.5, + "Pr123": 0.8, + "Pr124": 1.2, + "Pr125": 3.3, + "Pr126": 3.14, + "Pr127": 4.2, + "Pr128": 2.85, + "Pr129": 32.0, + "Pr130": 40.0, + "Pr131": 90.6, + "Pr131_m1": 5.73, + "Pr132": 96.0, + "Pr133": 390.0, + "Pr134": 1020.0, + "Pr134_m1": 660.0, + "Pr135": 1440.0, + "Pr136": 786.0, + "Pr137": 4608.0, + "Pr138": 87.0, + "Pr138_m1": 7632.0, + "Pr139": 15876.0, + "Pr140": 203.4, + "Pr142": 68832.0, + "Pr142_m1": 876.0, + "Pr143": 1172448.0, + "Pr144": 1036.8, + "Pr144_m1": 432.0, + "Pr145": 21542.4, + "Pr146": 1449.0, + "Pr147": 804.0, + "Pr148": 137.4, + "Pr148_m1": 120.6, + "Pr149": 135.6, + "Pr150": 6.19, + "Pr151": 18.9, + "Pr152": 3.63, + "Pr153": 4.28, + "Pr154": 2.3, + "Pr155": 0.852, + "Pr156": 0.733, + "Pr157": 0.598, + "Pr158": 0.1342, + "Pr159": 0.1055, + "Nd124": 0.5, + "Nd125": 0.6, + "Nd126": 2e-07, + "Nd127": 1.8, + "Nd128": 5.0, + "Nd129": 4.9, + "Nd130": 21.0, + "Nd131": 26.0, + "Nd132": 94.0, + "Nd133": 70.0, + "Nd133_m1": 70.0, + "Nd134": 510.0, + "Nd135": 744.0, + "Nd135_m1": 330.0, + "Nd136": 3039.0, + "Nd137": 2310.0, + "Nd137_m1": 1.6, + "Nd138": 18144.0, + "Nd139": 1782.0, + "Nd139_m1": 19800.0, + "Nd140": 291168.0, + "Nd141": 8964.0, + "Nd141_m1": 62.0, + "Nd144": 7.22669e22, + "Nd147": 948672.0, + "Nd149": 6220.8, + "Nd150": 2.49305e26, + "Nd151": 746.4, + "Nd152": 684.0, + "Nd153": 31.6, + "Nd154": 25.9, + "Nd155": 8.9, + "Nd156": 5.49, + "Nd157": 1.906, + "Nd158": 1.331, + "Nd159": 0.773, + "Nd160": 0.5883, + "Nd161": 0.4884, + "Pm126": 0.5, + "Pm127": 1.0, + "Pm128": 1.0, + "Pm129": 2.4, + "Pm130": 2.6, + "Pm131": 6.3, + "Pm132": 6.2, + "Pm133": 15.0, + "Pm133_m1": 8.8, + "Pm134": 5.0, + "Pm134_m1": 22.0, + "Pm135": 49.0, + "Pm135_m1": 45.0, + "Pm136": 47.0, + "Pm136_m1": 107.0, + "Pm137": 144.0, + "Pm138": 10.0, + "Pm138_m1": 194.4, + "Pm139": 249.0, + "Pm139_m1": 0.18, + "Pm140": 357.0, + "Pm140_m1": 357.0, + "Pm141": 1254.0, + "Pm142": 40.5, + "Pm142_m1": 0.002, + "Pm143": 22896000.0, + "Pm144": 31363200.0, + "Pm145": 558569500.0, + "Pm146": 174513500.0, + "Pm147": 82788210.0, + "Pm148": 463795.2, + "Pm148_m1": 3567456.0, + "Pm149": 191088.0, + "Pm150": 9648.0, + "Pm151": 102240.0, + "Pm152": 247.2, + "Pm152_m1": 451.2, + "Pm152_m2": 828.0, + "Pm153": 315.0, + "Pm154": 103.8, + "Pm154_m1": 160.8, + "Pm155": 41.5, + "Pm156": 26.7, + "Pm157": 10.56, + "Pm158": 4.8, + "Pm159": 1.47, + "Pm160": 1.561, + "Pm161": 1.065, + "Pm162": 0.2679, + "Pm163": 0.2, + "Sm128": 0.5, + "Sm129": 0.55, + "Sm130": 1.0, + "Sm131": 1.2, + "Sm132": 4.0, + "Sm133": 3.7, + "Sm134": 9.5, + "Sm135": 10.3, + "Sm136": 47.0, + "Sm137": 45.0, + "Sm138": 186.0, + "Sm139": 154.2, + "Sm139_m1": 10.7, + "Sm140": 889.2, + "Sm141": 612.0, + "Sm141_m1": 1356.0, + "Sm142": 4349.4, + "Sm143": 525.0, + "Sm143_m1": 66.0, + "Sm143_m2": 0.03, + "Sm145": 29376000.0, + "Sm146": 3250430000000000.0, + "Sm147": 3.34511e18, + "Sm148": 2.20903e23, + "Sm151": 2840184000.0, + "Sm153": 167400.0, + "Sm153_m1": 0.0106, + "Sm155": 1338.0, + "Sm156": 33840.0, + "Sm157": 482.0, + "Sm158": 318.0, + "Sm159": 11.37, + "Sm160": 9.6, + "Sm161": 4.8, + "Sm162": 2.4, + "Sm163": 1.748, + "Sm164": 1.226, + "Sm165": 0.764, + "Eu130": 0.001, + "Eu131": 0.0178, + "Eu132": 0.1, + "Eu133": 1.0, + "Eu134": 0.5, + "Eu135": 1.5, + "Eu136": 3.8, + "Eu136_m1": 3.3, + "Eu136_m2": 3.8, + "Eu137": 11.0, + "Eu138": 12.1, + "Eu139": 17.9, + "Eu140": 1.51, + "Eu140_m1": 0.125, + "Eu141": 40.7, + "Eu141_m1": 2.7, + "Eu142": 2.34, + "Eu142_m1": 73.38, + "Eu143": 155.4, + "Eu144": 10.2, + "Eu145": 512352.0, + "Eu146": 396576.0, + "Eu147": 2082240.0, + "Eu148": 4708800.0, + "Eu149": 8043840.0, + "Eu150": 1164480000.0, + "Eu150_m1": 46080.0, + "Eu152": 427195200.0, + "Eu152_m1": 33521.76, + "Eu152_m2": 5760.0, + "Eu154": 271426900.0, + "Eu154_m1": 2760.0, + "Eu155": 149993300.0, + "Eu156": 1312416.0, + "Eu157": 54648.0, + "Eu158": 2754.0, + "Eu159": 1086.0, + "Eu160": 38.0, + "Eu161": 26.0, + "Eu162": 10.6, + "Eu163": 7.7, + "Eu164": 2.844, + "Eu165": 2.3, + "Eu166": 0.4, + "Eu167": 0.2, + "Gd134": 0.4, + "Gd135": 1.1, + "Gd136": 2e-05, + "Gd137": 2.2, + "Gd138": 4.7, + "Gd139": 5.8, + "Gd139_m1": 4.8, + "Gd140": 15.8, + "Gd141": 14.0, + "Gd141_m1": 24.5, + "Gd142": 70.2, + "Gd143": 39.0, + "Gd143_m1": 110.0, + "Gd144": 268.2, + "Gd145": 1380.0, + "Gd145_m1": 85.0, + "Gd146": 4170528.0, + "Gd147": 137016.0, + "Gd148": 2354197000.0, + "Gd149": 801792.0, + "Gd150": 56488100000000.0, + "Gd151": 10713600.0, + "Gd152": 3.40822e21, + "Gd153": 20770560.0, + "Gd155_m1": 0.03197, + "Gd159": 66524.4, + "Gd161": 219.6, + "Gd162": 504.0, + "Gd163": 68.0, + "Gd164": 45.0, + "Gd165": 10.3, + "Gd166": 4.8, + "Gd167": 3.0, + "Gd168": 0.3, + "Gd169": 1.0, + "Tb135": 0.995, + "Tb136": 0.2, + "Tb137": 0.6, + "Tb138": 2e-07, + "Tb139": 1.6, + "Tb140": 2.4, + "Tb141": 3.5, + "Tb141_m1": 7.9, + "Tb142": 0.597, + "Tb142_m1": 0.303, + "Tb143": 12.0, + "Tb143_m1": 21.0, + "Tb144": 1.0, + "Tb144_m1": 4.25, + "Tb145": 30.9, + "Tb145_m1": 30.9, + "Tb146": 8.0, + "Tb146_m1": 23.0, + "Tb146_m2": 0.00118, + "Tb147": 5904.0, + "Tb147_m1": 109.8, + "Tb148": 3600.0, + "Tb148_m1": 132.0, + "Tb149": 14824.8, + "Tb149_m1": 249.6, + "Tb150": 12528.0, + "Tb150_m1": 348.0, + "Tb151": 63392.4, + "Tb151_m1": 25.0, + "Tb152": 63000.0, + "Tb152_m1": 252.0, + "Tb153": 202176.0, + "Tb154": 77400.0, + "Tb154_m1": 33840.0, + "Tb154_m2": 81720.0, + "Tb155": 459648.0, + "Tb156": 462240.0, + "Tb156_m1": 87840.0, + "Tb156_m2": 19080.0, + "Tb157": 2240590000.0, + "Tb158": 5680368000.0, + "Tb158_m1": 10.7, + "Tb160": 6246720.0, + "Tb161": 596678.4, + "Tb162": 456.0, + "Tb163": 1170.0, + "Tb164": 180.0, + "Tb165": 126.6, + "Tb166": 25.1, + "Tb167": 19.4, + "Tb168": 8.2, + "Tb169": 2.0, + "Tb170": 3.0, + "Tb171": 0.5, + "Dy138": 0.2, + "Dy139": 0.6, + "Dy140": 0.84, + "Dy141": 0.9, + "Dy142": 2.3, + "Dy143": 3.2, + "Dy143_m1": 3.0, + "Dy144": 9.1, + "Dy145": 6.0, + "Dy145_m1": 14.1, + "Dy146": 29.0, + "Dy146_m1": 0.15, + "Dy147": 40.0, + "Dy147_m1": 55.7, + "Dy148": 198.0, + "Dy149": 252.0, + "Dy149_m1": 0.49, + "Dy150": 430.2, + "Dy151": 1074.0, + "Dy152": 8568.0, + "Dy153": 23040.0, + "Dy154": 94672800000000.0, + "Dy155": 35640.0, + "Dy157": 29304.0, + "Dy157_m1": 0.0216, + "Dy159": 12476160.0, + "Dy165": 8402.4, + "Dy165_m1": 75.42, + "Dy166": 293760.0, + "Dy167": 372.0, + "Dy168": 522.0, + "Dy169": 39.0, + "Dy170": 30.0, + "Dy171": 6.0, + "Dy172": 3.0, + "Dy173": 2.0, + "Ho140": 0.006, + "Ho141": 0.0041, + "Ho142": 0.4, + "Ho143": 2e-07, + "Ho144": 0.7, + "Ho145": 2.4, + "Ho146": 3.6, + "Ho147": 5.8, + "Ho148": 2.2, + "Ho148_m1": 9.59, + "Ho148_m2": 0.00236, + "Ho149": 21.1, + "Ho149_m1": 56.0, + "Ho150": 72.0, + "Ho150_m1": 23.3, + "Ho151": 35.2, + "Ho151_m1": 47.2, + "Ho152": 161.8, + "Ho152_m1": 50.0, + "Ho153": 120.6, + "Ho153_m1": 558.0, + "Ho154": 705.6, + "Ho154_m1": 186.0, + "Ho155": 2880.0, + "Ho155_m1": 0.00088, + "Ho156": 3360.0, + "Ho156_m1": 9.5, + "Ho156_m2": 468.0, + "Ho157": 756.0, + "Ho158": 678.0, + "Ho158_m1": 1680.0, + "Ho158_m2": 1278.0, + "Ho159": 1983.0, + "Ho159_m1": 8.3, + "Ho160": 1536.0, + "Ho160_m1": 18072.0, + "Ho160_m2": 3.0, + "Ho161": 8928.0, + "Ho161_m1": 6.76, + "Ho162": 900.0, + "Ho162_m1": 4020.0, + "Ho163": 144218000000.0, + "Ho163_m1": 1.09, + "Ho164": 1740.0, + "Ho164_m1": 2250.0, + "Ho166": 96480.0, + "Ho166_m1": 37869100000.0, + "Ho167": 11160.0, + "Ho168": 179.4, + "Ho168_m1": 132.0, + "Ho169": 283.2, + "Ho170": 165.6, + "Ho170_m1": 43.0, + "Ho171": 53.0, + "Ho172": 25.0, + "Ho173": 10.0, + "Ho174": 8.0, + "Ho175": 5.0, + "Er143": 0.2, + "Er144": 2e-07, + "Er146": 1.7, + "Er147": 2.5, + "Er147_m1": 2.5, + "Er148": 4.6, + "Er149": 4.0, + "Er149_m1": 8.9, + "Er150": 18.5, + "Er151": 23.5, + "Er151_m1": 0.58, + "Er152": 10.3, + "Er153": 37.1, + "Er154": 223.8, + "Er155": 318.0, + "Er156": 1170.0, + "Er157": 1119.0, + "Er157_m1": 0.076, + "Er158": 8244.0, + "Er159": 2160.0, + "Er160": 102888.0, + "Er161": 11556.0, + "Er163": 4500.0, + "Er165": 37296.0, + "Er167_m1": 2.269, + "Er169": 811468.8, + "Er171": 27057.6, + "Er172": 177480.0, + "Er173": 84.0, + "Er174": 192.0, + "Er175": 72.0, + "Er176": 20.0, + "Er177": 3.0, + "Tm145": 3.1e-06, + "Tm146": 0.08, + "Tm146_m1": 0.2, + "Tm147": 0.58, + "Tm148": 0.7, + "Tm149": 0.9, + "Tm150": 2.2, + "Tm150_m1": 0.0052, + "Tm151": 4.17, + "Tm151_m1": 4.51e-07, + "Tm152": 8.0, + "Tm152_m1": 5.2, + "Tm153": 1.48, + "Tm153_m1": 2.5, + "Tm154": 8.1, + "Tm154_m1": 3.3, + "Tm155": 21.6, + "Tm155_m1": 45.0, + "Tm156": 83.8, + "Tm157": 217.8, + "Tm158": 238.8, + "Tm159": 547.8, + "Tm160": 564.0, + "Tm160_m1": 74.5, + "Tm161": 1812.0, + "Tm162": 1302.0, + "Tm162_m1": 24.3, + "Tm163": 6516.0, + "Tm164": 120.0, + "Tm164_m1": 306.0, + "Tm165": 108216.0, + "Tm166": 27720.0, + "Tm166_m1": 0.34, + "Tm167": 799200.0, + "Tm168": 8043840.0, + "Tm170": 11111040.0, + "Tm171": 60590590.0, + "Tm172": 228960.0, + "Tm173": 29664.0, + "Tm174": 324.0, + "Tm175": 912.0, + "Tm176": 114.0, + "Tm177": 90.0, + "Tm178": 30.0, + "Tm179": 20.0, + "Yb148": 0.25, + "Yb149": 0.7, + "Yb150": 2e-07, + "Yb151": 1.6, + "Yb151_m1": 1.6, + "Yb152": 3.04, + "Yb153": 4.2, + "Yb154": 0.409, + "Yb155": 1.793, + "Yb156": 26.1, + "Yb157": 38.6, + "Yb158": 89.4, + "Yb159": 100.2, + "Yb160": 288.0, + "Yb161": 252.0, + "Yb162": 1132.2, + "Yb163": 663.0, + "Yb164": 4548.0, + "Yb165": 594.0, + "Yb166": 204120.0, + "Yb167": 1050.0, + "Yb169": 2766355.0, + "Yb169_m1": 46.0, + "Yb171_m1": 0.00525, + "Yb175": 361584.0, + "Yb175_m1": 0.0682, + "Yb176_m1": 11.4, + "Yb177": 6879.6, + "Yb177_m1": 6.41, + "Yb178": 4440.0, + "Yb179": 480.0, + "Yb180": 144.0, + "Yb181": 60.0, + "Lu150": 0.043, + "Lu151": 0.0806, + "Lu152": 0.7, + "Lu153": 0.9, + "Lu153_m1": 1.0, + "Lu154": 2.0, + "Lu154_m1": 1.12, + "Lu155": 0.068, + "Lu155_m1": 0.138, + "Lu155_m2": 0.00269, + "Lu156": 0.494, + "Lu156_m1": 0.198, + "Lu157": 6.8, + "Lu157_m1": 4.79, + "Lu158": 10.6, + "Lu159": 12.1, + "Lu160": 36.1, + "Lu160_m1": 40.0, + "Lu161": 77.0, + "Lu161_m1": 0.0073, + "Lu162": 82.2, + "Lu162_m1": 90.0, + "Lu162_m2": 114.0, + "Lu163": 238.2, + "Lu164": 188.4, + "Lu165": 644.4, + "Lu166": 159.0, + "Lu166_m1": 84.6, + "Lu166_m2": 127.2, + "Lu167": 3090.0, + "Lu167_m1": 60.0, + "Lu168": 330.0, + "Lu168_m1": 402.0, + "Lu169": 122616.0, + "Lu169_m1": 160.0, + "Lu170": 173836.8, + "Lu170_m1": 0.67, + "Lu171": 711936.0, + "Lu171_m1": 79.0, + "Lu172": 578880.0, + "Lu172_m1": 222.0, + "Lu173": 43233910.0, + "Lu174": 104455700.0, + "Lu174_m1": 12268800.0, + "Lu176": 1.18657e18, + "Lu176_m1": 13086.0, + "Lu177": 574300.8, + "Lu177_m1": 13862020.0, + "Lu177_m2": 390.0, + "Lu178": 1704.0, + "Lu178_m1": 1386.0, + "Lu179": 16524.0, + "Lu179_m1": 0.0031, + "Lu180": 342.0, + "Lu180_m1": 0.001, + "Lu181": 210.0, + "Lu182": 120.0, + "Lu183": 58.0, + "Lu184": 20.0, + "Hf153": 6e-06, + "Hf154": 2.0, + "Hf155": 0.89, + "Hf156": 0.023, + "Hf157": 0.11, + "Hf158": 2.85, + "Hf159": 5.6, + "Hf160": 13.6, + "Hf161": 18.2, + "Hf162": 39.4, + "Hf163": 40.0, + "Hf164": 111.0, + "Hf165": 76.0, + "Hf166": 406.2, + "Hf167": 123.0, + "Hf168": 1557.0, + "Hf169": 194.4, + "Hf170": 57636.0, + "Hf171": 43560.0, + "Hf171_m1": 29.5, + "Hf172": 59012710.0, + "Hf173": 84960.0, + "Hf174": 6.31152e22, + "Hf175": 6048000.0, + "Hf177_m1": 1.09, + "Hf177_m2": 3084.0, + "Hf178_m1": 4.0, + "Hf178_m2": 978285600.0, + "Hf179_m1": 18.67, + "Hf179_m2": 2164320.0, + "Hf180_m1": 19800.0, + "Hf181": 3662496.0, + "Hf182": 280863000000000.0, + "Hf182_m1": 3690.0, + "Hf183": 3841.2, + "Hf184": 14832.0, + "Hf184_m1": 48.0, + "Hf185": 210.0, + "Hf186": 156.0, + "Hf187": 30.0, + "Hf188": 20.0, + "Ta155": 0.0031, + "Ta156": 0.144, + "Ta156_m1": 0.36, + "Ta157": 0.0101, + "Ta157_m1": 0.0043, + "Ta157_m2": 0.0017, + "Ta158": 0.055, + "Ta158_m1": 0.0367, + "Ta159": 0.83, + "Ta159_m1": 0.515, + "Ta160": 1.55, + "Ta160_m1": 1.7, + "Ta161": 2.89, + "Ta162": 3.57, + "Ta163": 10.6, + "Ta164": 14.2, + "Ta165": 31.0, + "Ta166": 34.4, + "Ta167": 80.0, + "Ta168": 120.0, + "Ta169": 294.0, + "Ta170": 405.6, + "Ta171": 1398.0, + "Ta172": 2208.0, + "Ta173": 11304.0, + "Ta174": 4104.0, + "Ta175": 37800.0, + "Ta176": 29124.0, + "Ta176_m1": 0.0011, + "Ta176_m2": 0.00097, + "Ta177": 203616.0, + "Ta178": 558.6, + "Ta178_m1": 8496.0, + "Ta178_m2": 0.058, + "Ta179": 57434830.0, + "Ta179_m1": 0.009, + "Ta179_m2": 0.0541, + "Ta180": 29354.4, + "Ta182": 9913536.0, + "Ta182_m1": 0.283, + "Ta182_m2": 950.4, + "Ta183": 440640.0, + "Ta184": 31320.0, + "Ta185": 2964.0, + "Ta185_m1": 0.002, + "Ta186": 630.0, + "Ta187": 120.0, + "Ta188": 20.0, + "Ta189": 3.0, + "Ta190": 0.3, + "W158": 0.00125, + "W159": 0.0073, + "W160": 0.091, + "W161": 0.409, + "W162": 1.36, + "W163": 2.8, + "W164": 6.3, + "W165": 5.1, + "W166": 19.2, + "W167": 19.9, + "W168": 53.0, + "W169": 74.0, + "W170": 145.2, + "W171": 142.8, + "W172": 396.0, + "W173": 456.0, + "W174": 1992.0, + "W175": 2112.0, + "W176": 9000.0, + "W177": 7920.0, + "W178": 1866240.0, + "W179": 2223.0, + "W179_m1": 384.0, + "W180": 5.68037e25, + "W180_m1": 0.00547, + "W181": 10471680.0, + "W183_m1": 5.2, + "W185": 6488640.0, + "W185_m1": 100.2, + "W186": 5.36e27, + "W186_m1": 0.003, + "W187": 86400.0, + "W188": 6028992.0, + "W189": 642.0, + "W190": 1800.0, + "W190_m1": 0.0031, + "W191": 20.0, + "W192": 10.0, + "Re160": 0.00085, + "Re161": 0.00037, + "Re161_m1": 0.0156, + "Re162": 0.107, + "Re162_m1": 0.077, + "Re163": 0.39, + "Re163_m1": 0.214, + "Re164": 0.53, + "Re164_m1": 0.87, + "Re165": 1.0, + "Re165_m1": 2.1, + "Re166": 2.25, + "Re167": 5.9, + "Re167_m1": 3.4, + "Re168": 4.4, + "Re169": 8.1, + "Re169_m1": 15.1, + "Re170": 9.2, + "Re171": 15.2, + "Re172": 55.0, + "Re172_m1": 15.0, + "Re173": 118.8, + "Re174": 144.0, + "Re175": 353.4, + "Re176": 318.0, + "Re177": 840.0, + "Re178": 792.0, + "Re179": 1170.0, + "Re180": 146.4, + "Re181": 71640.0, + "Re182": 230400.0, + "Re182_m1": 45720.0, + "Re183": 6048000.0, + "Re183_m1": 0.00104, + "Re184": 3058560.0, + "Re184_m1": 14601600.0, + "Re186": 321261.1, + "Re186_m1": 6311520000000.0, + "Re187": 1.36644e18, + "Re188": 61214.4, + "Re188_m1": 1115.4, + "Re189": 87480.0, + "Re190": 186.0, + "Re190_m1": 11520.0, + "Re191": 588.0, + "Re192": 16.0, + "Re193": 51.9, + "Re194": 1.0, + "Os162": 0.00205, + "Os163": 0.0055, + "Os164": 0.021, + "Os165": 0.071, + "Os166": 0.199, + "Os167": 0.81, + "Os168": 2.1, + "Os169": 3.43, + "Os170": 7.37, + "Os171": 8.3, + "Os172": 19.2, + "Os173": 22.4, + "Os174": 44.0, + "Os175": 84.0, + "Os176": 216.0, + "Os177": 180.0, + "Os178": 300.0, + "Os179": 390.0, + "Os180": 1290.0, + "Os181": 6300.0, + "Os181_m1": 162.0, + "Os182": 78624.0, + "Os183": 46800.0, + "Os183_m1": 35640.0, + "Os185": 8087040.0, + "Os186": 6.31152e22, + "Os189_m1": 20916.0, + "Os190_m1": 594.0, + "Os191": 1330560.0, + "Os191_m1": 47160.0, + "Os192_m1": 5.9, + "Os193": 108396.0, + "Os194": 189345600.0, + "Os195": 540.0, + "Os196": 2094.0, + "Ir164": 0.14, + "Ir164_m1": 9.5e-05, + "Ir165": 1e-06, + "Ir166": 0.0105, + "Ir166_m1": 0.0151, + "Ir167": 0.0352, + "Ir167_m1": 0.0257, + "Ir168": 0.232, + "Ir168_m1": 0.16, + "Ir169": 0.64, + "Ir169_m1": 0.281, + "Ir170": 0.9, + "Ir170_m1": 0.811, + "Ir171": 3.5, + "Ir171_m1": 1.4, + "Ir172": 4.4, + "Ir172_m1": 2.0, + "Ir173": 9.0, + "Ir173_m1": 2.2, + "Ir174": 7.9, + "Ir174_m1": 4.9, + "Ir175": 9.0, + "Ir176": 8.7, + "Ir177": 30.0, + "Ir178": 12.0, + "Ir179": 79.0, + "Ir180": 90.0, + "Ir181": 294.0, + "Ir182": 900.0, + "Ir183": 3480.0, + "Ir184": 11124.0, + "Ir185": 51840.0, + "Ir186": 59904.0, + "Ir186_m1": 6840.0, + "Ir187": 37800.0, + "Ir187_m1": 0.0303, + "Ir188": 149400.0, + "Ir188_m1": 0.0042, + "Ir189": 1140480.0, + "Ir189_m1": 0.0133, + "Ir189_m2": 0.0037, + "Ir190": 1017792.0, + "Ir190_m1": 4032.0, + "Ir190_m2": 11113.2, + "Ir191_m1": 4.899, + "Ir191_m2": 5.5, + "Ir192": 6378653.0, + "Ir192_m1": 87.0, + "Ir192_m2": 7605382000.0, + "Ir193_m1": 909792.0, + "Ir194": 69408.0, + "Ir194_m1": 0.03185, + "Ir194_m2": 14774400.0, + "Ir195": 9000.0, + "Ir195_m1": 13680.0, + "Ir196": 52.0, + "Ir196_m1": 5040.0, + "Ir197": 348.0, + "Ir197_m1": 534.0, + "Ir198": 8.0, + "Ir199": 6.5, + "Pt166": 0.0003, + "Pt167": 0.00078, + "Pt168": 0.002, + "Pt169": 0.007, + "Pt170": 0.014, + "Pt171": 0.051, + "Pt172": 0.096, + "Pt173": 0.382, + "Pt174": 0.889, + "Pt175": 2.53, + "Pt176": 6.33, + "Pt177": 10.6, + "Pt178": 21.1, + "Pt179": 21.2, + "Pt180": 56.0, + "Pt181": 52.0, + "Pt182": 180.0, + "Pt183": 390.0, + "Pt183_m1": 43.0, + "Pt184": 1038.0, + "Pt184_m1": 0.00101, + "Pt185": 4254.0, + "Pt185_m1": 1980.0, + "Pt186": 7488.0, + "Pt187": 8460.0, + "Pt188": 881280.0, + "Pt189": 39132.0, + "Pt190": 2.05124e19, + "Pt191": 242092.8, + "Pt193": 1577880000.0, + "Pt193_m1": 374112.0, + "Pt195_m1": 346464.0, + "Pt197": 71609.4, + "Pt197_m1": 5724.6, + "Pt199": 1848.0, + "Pt199_m1": 13.6, + "Pt200": 45360.0, + "Pt201": 150.0, + "Pt202": 158400.0, + "Au169": 0.00015, + "Au170": 0.000291, + "Au170_m1": 0.00062, + "Au171": 1.9e-05, + "Au171_m1": 0.00102, + "Au172": 0.0047, + "Au173": 0.025, + "Au173_m1": 0.014, + "Au174": 0.139, + "Au174_m1": 0.1629, + "Au175": 0.1, + "Au175_m1": 0.156, + "Au176": 1.05, + "Au176_m1": 1.36, + "Au177": 1.462, + "Au177_m1": 1.18, + "Au178": 2.6, + "Au179": 3.3, + "Au180": 8.1, + "Au181": 13.7, + "Au182": 15.6, + "Au183": 42.8, + "Au184": 20.6, + "Au184_m1": 47.6, + "Au185": 255.0, + "Au186": 642.0, + "Au187": 504.0, + "Au187_m1": 2.3, + "Au188": 530.4, + "Au189": 1722.0, + "Au189_m1": 275.4, + "Au190": 2568.0, + "Au190_m1": 0.125, + "Au191": 11448.0, + "Au191_m1": 0.92, + "Au192": 17784.0, + "Au192_m1": 0.029, + "Au192_m2": 0.16, + "Au193": 63540.0, + "Au193_m1": 3.9, + "Au194": 136872.0, + "Au194_m1": 0.6, + "Au194_m2": 0.42, + "Au195": 16078870.0, + "Au195_m1": 30.5, + "Au196": 532820.2, + "Au196_m1": 8.1, + "Au196_m2": 34560.0, + "Au197_m1": 7.73, + "Au198": 232822.1, + "Au198_m1": 196300.8, + "Au199": 271209.6, + "Au200": 2904.0, + "Au200_m1": 67320.0, + "Au201": 1560.0, + "Au202": 28.4, + "Au203": 60.0, + "Au204": 39.8, + "Au205": 31.0, + "Hg171": 6.9e-05, + "Hg172": 0.000365, + "Hg173": 0.0007, + "Hg174": 0.0019, + "Hg175": 0.0107, + "Hg176": 0.0203, + "Hg177": 0.1273, + "Hg178": 0.269, + "Hg179": 1.08, + "Hg180": 2.58, + "Hg181": 3.6, + "Hg182": 10.83, + "Hg183": 9.4, + "Hg184": 30.9, + "Hg185": 49.1, + "Hg185_m1": 21.6, + "Hg186": 82.8, + "Hg187": 144.0, + "Hg187_m1": 114.0, + "Hg188": 195.0, + "Hg189": 456.0, + "Hg189_m1": 516.0, + "Hg190": 1200.0, + "Hg191": 2940.0, + "Hg191_m1": 3048.0, + "Hg192": 17460.0, + "Hg193": 13680.0, + "Hg193_m1": 42480.0, + "Hg194": 14011600000.0, + "Hg195": 37908.0, + "Hg195_m1": 149760.0, + "Hg197": 230904.0, + "Hg197_m1": 85680.0, + "Hg199_m1": 2560.2, + "Hg203": 4025722.0, + "Hg205": 308.4, + "Hg205_m1": 0.00109, + "Hg206": 499.2, + "Hg207": 174.0, + "Hg208": 2490.0, + "Hg209": 36.5, + "Hg210": 146.0, + "Tl176": 0.006, + "Tl177": 0.018, + "Tl178": 0.06, + "Tl179": 0.23, + "Tl179_m1": 0.0017, + "Tl180": 1.09, + "Tl181": 3.2, + "Tl181_m1": 0.0014, + "Tl182": 3.1, + "Tl183": 6.9, + "Tl183_m1": 0.0533, + "Tl184": 11.0, + "Tl185": 19.5, + "Tl185_m1": 1.93, + "Tl186": 27.5, + "Tl186_m1": 2.9, + "Tl187": 51.0, + "Tl187_m1": 15.6, + "Tl188": 71.0, + "Tl188_m1": 71.0, + "Tl188_m2": 0.041, + "Tl189": 138.0, + "Tl189_m1": 84.0, + "Tl190": 222.0, + "Tl190_m1": 156.0, + "Tl191": 1200.0, + "Tl191_m1": 313.2, + "Tl192": 576.0, + "Tl192_m1": 648.0, + "Tl193": 1296.0, + "Tl193_m1": 126.6, + "Tl194": 1980.0, + "Tl194_m1": 1968.0, + "Tl195": 4176.0, + "Tl195_m1": 3.6, + "Tl196": 6624.0, + "Tl196_m1": 5076.0, + "Tl197": 10224.0, + "Tl197_m1": 0.54, + "Tl198": 19080.0, + "Tl198_m1": 6732.0, + "Tl198_m2": 0.0321, + "Tl199": 26712.0, + "Tl199_m1": 0.0284, + "Tl200": 93960.0, + "Tl200_m1": 0.034, + "Tl201": 262837.4, + "Tl201_m1": 0.00201, + "Tl202": 1063584.0, + "Tl204": 119382400.0, + "Tl206": 252.12, + "Tl206_m1": 224.4, + "Tl207": 286.2, + "Tl207_m1": 1.33, + "Tl208": 183.18, + "Tl209": 132.0, + "Tl210": 78.0, + "Tl211": 60.0, + "Tl212": 67.0, + "Pb178": 0.00023, + "Pb179": 0.003, + "Pb180": 0.0045, + "Pb181": 0.036, + "Pb181_m1": 0.045, + "Pb182": 0.0575, + "Pb183": 0.535, + "Pb183_m1": 0.415, + "Pb184": 0.49, + "Pb185": 6.3, + "Pb185_m1": 4.3, + "Pb186": 4.82, + "Pb187": 15.2, + "Pb187_m1": 18.3, + "Pb188": 25.1, + "Pb189": 39.0, + "Pb189_m1": 50.0, + "Pb190": 71.0, + "Pb191": 79.8, + "Pb191_m1": 130.8, + "Pb192": 210.0, + "Pb193": 120.0, + "Pb193_m1": 348.0, + "Pb194": 720.0, + "Pb195": 900.0, + "Pb195_m1": 900.0, + "Pb196": 2220.0, + "Pb197": 480.0, + "Pb197_m1": 2580.0, + "Pb198": 8640.0, + "Pb199": 5400.0, + "Pb199_m1": 732.0, + "Pb200": 77400.0, + "Pb201": 33588.0, + "Pb201_m1": 60.8, + "Pb202": 1656770000000.0, + "Pb202_m1": 12744.0, + "Pb203": 186912.0, + "Pb203_m1": 6.21, + "Pb203_m2": 0.48, + "Pb204": 4.4e24, + "Pb204_m1": 4015.8, + "Pb205": 545946000000000.0, + "Pb205_m1": 0.00555, + "Pb207_m1": 0.806, + "Pb209": 11710.8, + "Pb210": 700578700.0, + "Pb211": 2166.0, + "Pb212": 38304.0, + "Pb213": 612.0, + "Pb214": 1608.0, + "Pb215": 36.0, + "Bi184": 0.013, + "Bi184_m1": 0.0066, + "Bi185": 5.8e-05, + "Bi186": 0.015, + "Bi186_m1": 0.0098, + "Bi187": 0.032, + "Bi187_m1": 0.00031, + "Bi188": 0.06, + "Bi188_m1": 0.265, + "Bi189": 0.674, + "Bi189_m1": 0.005, + "Bi190": 6.3, + "Bi190_m1": 6.2, + "Bi191": 12.4, + "Bi191_m1": 0.125, + "Bi192": 34.6, + "Bi192_m1": 39.6, + "Bi193": 63.6, + "Bi193_m1": 3.2, + "Bi194": 95.0, + "Bi194_m1": 125.0, + "Bi194_m2": 115.0, + "Bi195": 183.0, + "Bi195_m1": 87.0, + "Bi196": 308.0, + "Bi196_m1": 0.6, + "Bi196_m2": 240.0, + "Bi197": 559.8, + "Bi197_m1": 302.4, + "Bi198": 618.0, + "Bi198_m1": 696.0, + "Bi198_m2": 7.7, + "Bi199": 1620.0, + "Bi199_m1": 1482.0, + "Bi200": 2184.0, + "Bi200_m1": 1860.0, + "Bi200_m2": 0.4, + "Bi201": 6180.0, + "Bi201_m1": 3450.0, + "Bi202": 6156.0, + "Bi203": 42336.0, + "Bi203_m1": 0.305, + "Bi204": 40392.0, + "Bi204_m1": 0.013, + "Bi204_m2": 0.00107, + "Bi205": 1322784.0, + "Bi206": 539395.2, + "Bi207": 995642300.0, + "Bi208": 11613200000000.0, + "Bi208_m1": 0.00258, + "Bi209": 5.99594e26, + "Bi210": 433036.8, + "Bi210_m1": 95935100000000.0, + "Bi211": 128.4, + "Bi212": 3633.0, + "Bi212_m1": 1500.0, + "Bi212_m2": 420.0, + "Bi213": 2735.4, + "Bi214": 1194.0, + "Bi215": 462.0, + "Bi215_m1": 36.4, + "Bi216": 135.0, + "Bi217": 98.5, + "Bi218": 33.0, + "Po188": 0.000425, + "Po189": 0.0035, + "Po190": 0.00245, + "Po191": 0.022, + "Po191_m1": 0.093, + "Po192": 0.0332, + "Po193": 0.37, + "Po193_m1": 0.373, + "Po194": 0.392, + "Po195": 4.64, + "Po195_m1": 1.92, + "Po196": 5.8, + "Po197": 84.0, + "Po197_m1": 32.0, + "Po198": 106.2, + "Po199": 328.2, + "Po199_m1": 250.2, + "Po200": 690.6, + "Po201": 936.0, + "Po201_m1": 537.6, + "Po202": 2676.0, + "Po203": 2202.0, + "Po203_m1": 45.0, + "Po204": 12708.0, + "Po205": 6264.0, + "Po205_m1": 0.000645, + "Po205_m2": 0.0574, + "Po206": 760320.0, + "Po207": 20880.0, + "Po207_m1": 2.79, + "Po208": 91453920.0, + "Po209": 3218880000.0, + "Po210": 11955690.0, + "Po211": 0.516, + "Po211_m1": 25.2, + "Po212": 2.99e-07, + "Po212_m1": 45.1, + "Po213": 4.2e-06, + "Po214": 0.0001643, + "Po215": 0.001781, + "Po216": 0.145, + "Po217": 1.53, + "Po218": 185.88, + "Po219": 3e-07, + "Po220": 3e-07, + "At193": 0.0285, + "At194": 0.04, + "At194_m1": 0.25, + "At195": 0.328, + "At195_m1": 0.147, + "At196": 0.388, + "At196_m1": 1.1e-05, + "At197": 0.388, + "At197_m1": 2.0, + "At198": 4.2, + "At198_m1": 1.0, + "At199": 7.03, + "At200": 43.0, + "At200_m1": 47.0, + "At200_m2": 7.9, + "At201": 85.2, + "At202": 184.0, + "At202_m1": 182.0, + "At202_m2": 0.46, + "At203": 444.0, + "At204": 553.2, + "At204_m1": 0.108, + "At205": 1614.0, + "At206": 1836.0, + "At207": 6480.0, + "At208": 5868.0, + "At209": 19476.0, + "At210": 29160.0, + "At211": 25970.4, + "At212": 0.314, + "At212_m1": 0.119, + "At213": 1.25e-07, + "At214": 5.58e-07, + "At215": 0.0001, + "At216": 0.0003, + "At217": 0.0323, + "At218": 1.5, + "At219": 56.0, + "At220": 222.6, + "At221": 138.0, + "At222": 54.0, + "At223": 50.0, + "Rn195": 0.0065, + "Rn195_m1": 0.005, + "Rn196": 0.0046, + "Rn197": 0.066, + "Rn197_m1": 0.021, + "Rn198": 0.065, + "Rn199": 0.59, + "Rn199_m1": 0.31, + "Rn200": 1.075, + "Rn201": 7.0, + "Rn201_m1": 3.8, + "Rn202": 9.7, + "Rn203": 44.0, + "Rn203_m1": 26.9, + "Rn204": 70.2, + "Rn205": 170.0, + "Rn206": 340.2, + "Rn207": 555.0, + "Rn208": 1461.0, + "Rn209": 1728.0, + "Rn210": 8640.0, + "Rn211": 52560.0, + "Rn212": 1434.0, + "Rn213": 0.025, + "Rn214": 2.7e-07, + "Rn215": 2.3e-06, + "Rn216": 4.5e-05, + "Rn217": 0.00054, + "Rn218": 0.035, + "Rn219": 3.96, + "Rn220": 55.6, + "Rn221": 1542.0, + "Rn222": 330350.4, + "Rn223": 1458.0, + "Rn224": 6420.0, + "Rn225": 279.6, + "Rn226": 444.0, + "Rn227": 20.8, + "Rn228": 65.0, + "Fr199": 0.015, + "Fr200": 0.049, + "Fr201": 0.069, + "Fr202": 0.3, + "Fr202_m1": 0.29, + "Fr203": 0.55, + "Fr204": 1.7, + "Fr204_m1": 2.6, + "Fr204_m2": 1.0, + "Fr205": 3.8, + "Fr206": 16.0, + "Fr206_m1": 16.0, + "Fr206_m2": 0.7, + "Fr207": 14.8, + "Fr208": 59.1, + "Fr209": 50.0, + "Fr210": 190.8, + "Fr211": 186.0, + "Fr212": 1200.0, + "Fr213": 34.82, + "Fr214": 0.005, + "Fr214_m1": 0.00335, + "Fr215": 8.6e-08, + "Fr216": 7e-07, + "Fr217": 1.9e-05, + "Fr218": 0.001, + "Fr218_m1": 0.022, + "Fr219": 0.02, + "Fr220": 27.4, + "Fr221": 294.0, + "Fr222": 852.0, + "Fr223": 1320.0, + "Fr224": 199.8, + "Fr225": 237.0, + "Fr226": 49.0, + "Fr227": 148.2, + "Fr228": 38.0, + "Fr229": 50.2, + "Fr230": 19.1, + "Fr231": 17.6, + "Fr232": 5.5, + "Ra202": 0.0275, + "Ra203": 0.031, + "Ra203_m1": 0.025, + "Ra204": 0.0605, + "Ra205": 0.22, + "Ra205_m1": 0.18, + "Ra206": 0.24, + "Ra207": 1.3, + "Ra207_m1": 0.055, + "Ra208": 1.3, + "Ra209": 4.6, + "Ra210": 3.7, + "Ra211": 13.0, + "Ra212": 13.0, + "Ra213": 163.8, + "Ra213_m1": 0.0021, + "Ra214": 2.46, + "Ra215": 0.00155, + "Ra216": 1.82e-07, + "Ra217": 1.6e-06, + "Ra218": 2.52e-05, + "Ra219": 0.01, + "Ra220": 0.018, + "Ra221": 28.0, + "Ra222": 36.17, + "Ra223": 987552.0, + "Ra224": 316224.0, + "Ra225": 1287360.0, + "Ra226": 50492200000.0, + "Ra227": 2532.0, + "Ra228": 181456200.0, + "Ra229": 240.0, + "Ra230": 5580.0, + "Ra231": 103.0, + "Ra232": 252.0, + "Ra233": 30.0, + "Ra234": 30.0, + "Ac206": 0.024, + "Ac206_m1": 0.0395, + "Ac207": 0.027, + "Ac208": 0.095, + "Ac208_m1": 0.025, + "Ac209": 0.098, + "Ac210": 0.35, + "Ac211": 0.21, + "Ac212": 0.93, + "Ac213": 0.8, + "Ac214": 8.2, + "Ac215": 0.17, + "Ac216": 0.00044, + "Ac216_m1": 0.000441, + "Ac217": 6.9e-08, + "Ac218": 1.08e-06, + "Ac219": 1.18e-05, + "Ac220": 0.0264, + "Ac221": 0.052, + "Ac222": 5.0, + "Ac222_m1": 63.0, + "Ac223": 126.0, + "Ac224": 10008.0, + "Ac225": 864000.0, + "Ac226": 105732.0, + "Ac227": 687072100.0, + "Ac228": 22140.0, + "Ac229": 3762.0, + "Ac230": 122.0, + "Ac231": 450.0, + "Ac232": 119.0, + "Ac233": 145.0, + "Ac234": 44.0, + "Ac235": 60.0, + "Ac236": 120.0, + "Th209": 0.0065, + "Th210": 0.016, + "Th211": 0.05, + "Th212": 0.035, + "Th213": 0.14, + "Th214": 0.1, + "Th215": 1.2, + "Th216": 0.026, + "Th217": 0.000251, + "Th218": 1.17e-07, + "Th219": 1.05e-06, + "Th220": 9.7e-06, + "Th221": 0.00173, + "Th222": 0.002237, + "Th223": 0.6, + "Th224": 1.05, + "Th225": 523.2, + "Th226": 1834.2, + "Th227": 1613952.0, + "Th228": 60338130.0, + "Th229": 231633000000.0, + "Th230": 2378810000000.0, + "Th231": 91872.0, + "Th232": 4.43384e17, + "Th233": 1338.0, + "Th234": 2082240.0, + "Th235": 426.0, + "Th236": 2238.0, + "Th237": 282.0, + "Th238": 564.0, + "Pa212": 0.0051, + "Pa213": 0.0053, + "Pa214": 0.017, + "Pa215": 0.014, + "Pa216": 0.16, + "Pa217": 0.0036, + "Pa217_m1": 0.0012, + "Pa218": 0.000113, + "Pa219": 5.3e-08, + "Pa220": 7.8e-07, + "Pa221": 5.9e-06, + "Pa222": 0.0033, + "Pa223": 0.0051, + "Pa224": 0.79, + "Pa225": 1.7, + "Pa226": 108.0, + "Pa227": 2298.0, + "Pa228": 79200.0, + "Pa229": 129600.0, + "Pa230": 1503360.0, + "Pa231": 1033830000000.0, + "Pa232": 114048.0, + "Pa233": 2330640.0, + "Pa234": 24120.0, + "Pa234_m1": 69.54, + "Pa235": 1466.4, + "Pa236": 546.0, + "Pa237": 522.0, + "Pa238": 136.2, + "Pa239": 6480.0, + "Pa240": 120.0, + "U217": 0.0235, + "U218": 0.000545, + "U219": 4.2e-05, + "U220": 6e-08, + "U222": 1.3e-06, + "U223": 1.8e-05, + "U224": 0.0009, + "U225": 0.084, + "U226": 0.35, + "U227": 66.0, + "U228": 546.0, + "U229": 3480.0, + "U230": 1797120.0, + "U231": 362880.0, + "U232": 2174319000.0, + "U233": 5023970000000.0, + "U234": 7747390000000.0, + "U235": 2.22102e16, + "U235_m1": 1560.0, + "U236": 739079000000000.0, + "U237": 583200.0, + "U238": 1.40999e17, + "U239": 1407.0, + "U240": 50760.0, + "U241": 300.0, + "U242": 1008.0, + "Np225": 2e-06, + "Np226": 0.035, + "Np227": 0.51, + "Np228": 61.4, + "Np229": 240.0, + "Np230": 276.0, + "Np231": 2928.0, + "Np232": 882.0, + "Np233": 2172.0, + "Np234": 380160.0, + "Np235": 34231680.0, + "Np236": 4828310000000.0, + "Np236_m1": 81000.0, + "Np237": 67659500000000.0, + "Np238": 182908.8, + "Np239": 203558.4, + "Np240": 3714.0, + "Np240_m1": 433.2, + "Np241": 834.0, + "Np242": 132.0, + "Np242_m1": 330.0, + "Np243": 111.0, + "Np244": 137.4, + "Pu228": 1.85, + "Pu229": 112.0, + "Pu230": 102.0, + "Pu231": 516.0, + "Pu232": 2028.0, + "Pu233": 1254.0, + "Pu234": 31680.0, + "Pu235": 1518.0, + "Pu236": 90191620.0, + "Pu237": 3943296.0, + "Pu237_m1": 0.18, + "Pu238": 2767602000.0, + "Pu239": 760854000000.0, + "Pu240": 207049000000.0, + "Pu241": 450958100.0, + "Pu242": 11786800000000.0, + "Pu243": 17841.6, + "Pu244": 2559320000000000.0, + "Pu245": 37800.0, + "Pu246": 936576.0, + "Pu247": 196128.0, + "Am231": 10.0, + "Am232": 79.0, + "Am233": 192.0, + "Am234": 139.2, + "Am235": 618.0, + "Am236": 216.0, + "Am237": 4416.0, + "Am238": 5880.0, + "Am239": 42840.0, + "Am240": 182880.0, + "Am241": 13651800000.0, + "Am242": 57672.0, + "Am242_m1": 4449622000.0, + "Am242_m2": 0.014, + "Am243": 232580000000.0, + "Am244": 36360.0, + "Am244_m1": 1560.0, + "Am245": 7380.0, + "Am246": 2340.0, + "Am246_m1": 1500.0, + "Am247": 1380.0, + "Am248": 600.0, + "Am249": 120.0, + "Cm233": 17.7, + "Cm234": 51.0, + "Cm235": 300.0, + "Cm236": 1900.0, + "Cm237": 1200.0, + "Cm238": 8640.0, + "Cm239": 10440.0, + "Cm240": 2332800.0, + "Cm241": 2833920.0, + "Cm242": 14078020.0, + "Cm243": 918326200.0, + "Cm244": 571508100.0, + "Cm244_m1": 5e-07, + "Cm245": 268240000000.0, + "Cm246": 150214000000.0, + "Cm247": 492299000000000.0, + "Cm248": 10982000000000.0, + "Cm249": 3849.0, + "Cm250": 261928000000.0, + "Cm251": 1008.0, + "Bk235": 20.0, + "Bk237": 60.0, + "Bk238": 144.0, + "Bk240": 288.0, + "Bk241": 276.0, + "Bk242": 420.0, + "Bk243": 16200.0, + "Bk244": 15660.0, + "Bk245": 426816.0, + "Bk246": 155520.0, + "Bk247": 43549500000.0, + "Bk248": 283824000.0, + "Bk248_m1": 85320.0, + "Bk249": 27648000.0, + "Bk250": 11563.2, + "Bk251": 3336.0, + "Bk253": 600.0, + "Bk254": 120.0, + "Cf237": 2.1, + "Cf238": 0.021, + "Cf239": 51.5, + "Cf240": 57.6, + "Cf241": 226.8, + "Cf242": 222.0, + "Cf243": 642.0, + "Cf244": 1164.0, + "Cf245": 2700.0, + "Cf246": 128520.0, + "Cf247": 11196.0, + "Cf248": 28814400.0, + "Cf249": 11076700000.0, + "Cf250": 412773400.0, + "Cf251": 28338700000.0, + "Cf252": 83468070.0, + "Cf253": 1538784.0, + "Cf254": 5227200.0, + "Cf255": 5100.0, + "Cf256": 738.0, + "Es240": 1.0, + "Es241": 8.5, + "Es242": 13.5, + "Es243": 21.0, + "Es244": 37.0, + "Es245": 66.0, + "Es246": 462.0, + "Es247": 273.0, + "Es247_m1": 54000000.0, + "Es248": 1620.0, + "Es249": 6132.0, + "Es250": 30960.0, + "Es250_m1": 7992.0, + "Es251": 118800.0, + "Es252": 40754880.0, + "Es253": 1768608.0, + "Es254": 23820480.0, + "Es254_m1": 141479.9, + "Es255": 3438720.0, + "Es256": 1524.0, + "Es256_m1": 27360.0, + "Es257": 665280.0, + "Es258": 180.0, + "Fm242": 0.0008, + "Fm243": 0.2, + "Fm244": 0.0033, + "Fm245": 4.2, + "Fm246": 1.1, + "Fm247": 29.0, + "Fm248": 36.0, + "Fm249": 156.0, + "Fm250": 1800.0, + "Fm250_m1": 1.8, + "Fm251": 19080.0, + "Fm252": 91404.0, + "Fm253": 259200.0, + "Fm254": 11664.0, + "Fm255": 72252.0, + "Fm256": 9456.0, + "Fm257": 8683200.0, + "Fm258": 0.00037, + "Fm259": 1.5, + "Fm260": 0.004, + "Md245": 0.0009, + "Md245_m1": 0.39, + "Md246": 0.9, + "Md247": 1.12, + "Md247_m1": 0.26, + "Md248": 7.0, + "Md249": 24.0, + "Md249_m1": 1.9, + "Md250": 27.5, + "Md251": 240.0, + "Md252": 138.0, + "Md253": 630.0, + "Md254": 1680.0, + "Md254_m1": 1680.0, + "Md255": 1620.0, + "Md256": 4620.0, + "Md257": 19872.0, + "Md258": 4449600.0, + "Md258_m1": 3420.0, + "Md259": 5760.0, + "Md260": 2747520.0, + "Md261": 2400.0, + "No250": 4.35e-06, + "No251": 0.8, + "No251_m1": 1.02, + "No252": 2.44, + "No253": 97.2, + "No254": 51.0, + "No254_m1": 0.28, + "No255": 186.0, + "No256": 2.91, + "No257": 25.0, + "No258": 0.0012, + "No259": 3480.0, + "No260": 0.106, + "No261": 160000.0, + "No262": 0.005, + "Lr251": 1.341, + "Lr252": 0.38, + "Lr253": 0.575, + "Lr253_m1": 1.535, + "Lr254": 13.0, + "Lr255": 22.0, + "Lr255_m1": 2.53, + "Lr256": 27.0, + "Lr257": 0.646, + "Lr258": 4.1, + "Lr259": 6.2, + "Lr260": 180.0, + "Lr261": 2340.0, + "Lr262": 14400.0, + "Lr263": 18000.0, + "Rf253": 5.15e-05, + "Rf254": 2.3e-05, + "Rf255": 1.68, + "Rf256": 0.0064, + "Rf257": 4.7, + "Rf257_m1": 3.9, + "Rf258": 0.012, + "Rf259": 3.2, + "Rf260": 0.021, + "Rf261": 65.0, + "Rf261_m1": 81.0, + "Rf262": 2.3, + "Rf263": 600.0, + "Rf264": 3600.0, + "Rf265": 1.0, + "Db255": 1.7, + "Db256": 1.7, + "Db257": 1.52, + "Db257_m1": 0.78, + "Db258": 4.0, + "Db258_m1": 20.0, + "Db259": 0.51, + "Db260": 1.52, + "Db261": 1.8, + "Db262": 35.0, + "Db263": 28.5, + "Db264": 180.0, + "Db265": 900.0, + "Sg258": 0.0032, + "Sg259": 0.555, + "Sg260": 0.0036, + "Sg261": 0.23, + "Sg262": 0.0079, + "Sg263": 1.0, + "Sg263_m1": 0.12, + "Sg264": 0.045, + "Sg265": 8.0, + "Sg266": 25.0, + "Sg269": 50.0, + "Bh260": 0.0003, + "Bh261": 0.013, + "Bh262": 0.102, + "Bh262_m1": 0.022, + "Bh263": 0.0002, + "Bh264": 0.66, + "Bh265": 1.1, + "Bh266": 5.4, + "Bh267": 21.0, + "Bh269": 50.0, + "Hs263": 0.00355, + "Hs264": 0.0008, + "Hs265": 0.00205, + "Hs265_m1": 0.0003, + "Hs266": 0.00265, + "Hs267": 0.0545, + "Hs268": 1.2, + "Hs269": 12.9, + "Hs273": 50.0, + "Mt265": 120.0, + "Mt266": 0.0018, + "Mt266_m1": 0.0017, + "Mt267": 0.01, + "Mt268": 0.0225, + "Mt269": 0.05, + "Mt270": 0.00605, + "Mt271": 5.0, + "Mt273": 20.0, + "Ds267": 2.8e-06, + "Ds268": 0.0001, + "Ds269": 0.000268, + "Ds270": 0.00015, + "Ds270_m1": 0.009, + "Ds271": 0.001705, + "Ds271_m1": 0.0865, + "Ds272": 1.0, + "Ds273": 0.000225, + "Ds279_m1": 0.19, + "Rg272": 0.0041 +} diff --git a/openmc/material.py b/openmc/material.py index a9f5afac8..9706ffe78 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -30,9 +30,9 @@ class Material(IDManagerMixin): To create a material, one should create an instance of this class, add nuclides or elements with :meth:`Material.add_nuclide` or - `Material.add_element`, respectively, and set the total material density - with `Material.set_density()`. The material can then be assigned to a cell - using the :attr:`Cell.fill` attribute. + :meth:`Material.add_element`, respectively, and set the total material + density with :meth:`Material.set_density()`. The material can then be + assigned to a cell using the :attr:`Cell.fill` attribute. Parameters ---------- @@ -142,6 +142,23 @@ class Material(IDManagerMixin): return string + + @property + def activity(self): + """Returns the total activity of the material in Becquerels.""" + + atoms_per_barn_cm2 = self.get_nuclide_atom_densities() + total_activity = 0 + for key, value in atoms_per_barn_cm2.items(): + half_life = openmc.data.half_life(key) + print('half_life', half_life) + if half_life: + atoms = value[1] * self.volume * 1e24 + activity = math.log(2) * atoms / half_life + total_activity += activity + + return total_activity + @property def name(self): return self._name @@ -707,19 +724,6 @@ class Material(IDManagerMixin): self.isotropic = [x.name for x in self._nuclides] - def get_activity(self): - """Returns the total activity of the material in Becquerels.""" - - atoms_per_barn_cm2 = self.get_nuclide_atom_densities() - total_activity = 0 - for key, value in atoms_per_barn_cm2.items(): - if key in openmc.data.HALF_LIFE.keys(): - atoms = value[1] * self.volume * 1e24 - activity = math.log(2) * atoms / openmc.data.HALF_LIFE[key] - total_activity += activity - - return total_activity - def get_elements(self): """Returns all elements in the material diff --git a/tests/unit_tests/test_material.py b/tests/unit_tests/test_material.py index 02e53a28d..baef3f9ef 100644 --- a/tests/unit_tests/test_material.py +++ b/tests/unit_tests/test_material.py @@ -404,3 +404,21 @@ def test_mix_materials(): assert m3.density == pytest.approx(dens3) assert m4.density == pytest.approx(dens4) assert m5.density == pytest.approx(dens5) + + +def test_activity_of_stable(): + """Creates a material with stable isotopes to checks the activity is 0""" + m1 = openmc.Material() + m1.add_element("Fe", 1) + m1.set_density('g/cm3', 1) + m1.volume = 1 + assert m1.activity == 0 + + +def test_activity_of_tritium(): + """Checks that 1g of tritium has the correct activity""" + m1 = openmc.Material() + m1.add_nuclide("H3", 1) + m1.set_density('g/cm3', 1) + m1.volume = 1 + assert pytest.approx(m1.activity) == 3.559778e14 From e5e1daf23fcf0f332ac2e79542dff36424d863e0 Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Thu, 9 Jun 2022 15:02:10 +0100 Subject: [PATCH 021/119] [skip ci] removed diagnostic prints --- openmc/data/data.py | 1 - openmc/material.py | 2 -- tests/unit_tests/test_material.py | 1 + 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/openmc/data/data.py b/openmc/data/data.py index 65702f7a5..5aadfac87 100644 --- a/openmc/data/data.py +++ b/openmc/data/data.py @@ -295,7 +295,6 @@ def half_life(isotope): """ global _HALF_LIFE if not _HALF_LIFE: - print('reading json file') # Load data from AME2016 file half_life_filename = os.path.join(os.path.dirname(__file__), 'half_life.json') with open(half_life_filename, 'r') as f: diff --git a/openmc/material.py b/openmc/material.py index 9706ffe78..e49696706 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -151,7 +151,6 @@ class Material(IDManagerMixin): total_activity = 0 for key, value in atoms_per_barn_cm2.items(): half_life = openmc.data.half_life(key) - print('half_life', half_life) if half_life: atoms = value[1] * self.volume * 1e24 activity = math.log(2) * atoms / half_life @@ -723,7 +722,6 @@ class Material(IDManagerMixin): def make_isotropic_in_lab(self): self.isotropic = [x.name for x in self._nuclides] - def get_elements(self): """Returns all elements in the material diff --git a/tests/unit_tests/test_material.py b/tests/unit_tests/test_material.py index baef3f9ef..c5d3276a0 100644 --- a/tests/unit_tests/test_material.py +++ b/tests/unit_tests/test_material.py @@ -422,3 +422,4 @@ def test_activity_of_tritium(): m1.set_density('g/cm3', 1) m1.volume = 1 assert pytest.approx(m1.activity) == 3.559778e14 + From 61db44f40e33d132d895974852c448beeacc6770 Mon Sep 17 00:00:00 2001 From: myerspat Date: Thu, 9 Jun 2022 09:52:50 -0500 Subject: [PATCH 022/119] Xtensor for photoelectric cross sections matches the flux spectrum for uranium of the previous iteration of OpenMC --- src/photon.cpp | 15 +++++++++------ src/physics.cpp | 22 +++++++++++----------- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/src/photon.cpp b/src/photon.cpp index 1be515a62..bb715cdea 100644 --- a/src/photon.cpp +++ b/src/photon.cpp @@ -128,7 +128,7 @@ PhotonInteraction::PhotonInteraction(hid_t group) } shells_.resize(n_shell); - cross_sections_.resize({energy_.size(), n_shell}); + cross_sections_ = xt::zeros({energy_.size(), n_shell}); // Create mapping from designator to index std::unordered_map shell_map; @@ -166,8 +166,8 @@ PhotonInteraction::PhotonInteraction(hid_t group) read_dataset(tgroup, "xs", xs); auto cross_section = xt::view(cross_sections_, - xt::range(shell.threshold, shell.threshold + xs.size()), i); - cross_section = xt::where(xs > 0.0, xt::log(xs), -500.0); + xt::range(shell.threshold, xt::placeholders::_), i); + cross_section = xt::where(xs > 0, xt::log(xs), 0); if (object_exists(tgroup, "transitions")) { // Determine dimensions of transitions @@ -571,10 +571,13 @@ void PhotonInteraction::calculate_xs(Particle& p) const incoherent_(i_grid) + f * (incoherent_(i_grid + 1) - incoherent_(i_grid))); // Calculate microscopic photoelectric cross section - const auto& xs_upper = xt::row(cross_sections_, i_grid); - const auto& xs_lower = xt::row(cross_sections_, i_grid + 1); + xs.photoelectric = 0.0; + const auto& xs_lower = xt::row(cross_sections_, i_grid); + const auto& xs_upper = xt::row(cross_sections_, i_grid + 1); - xs.photoelectric = xt::sum(xt::exp(xs_upper + f * (xs_upper - xs_lower)))[0]; + for (int i = 0; i < xs_upper.size(); ++i) + if (xs_lower(i) != 0) + xs.photoelectric += std::exp(xs_lower(i) + f * (xs_upper(i) - xs_lower(i))); // Calculate microscopic pair production cross section xs.pair_production = std::exp( diff --git a/src/physics.cpp b/src/physics.cpp index 38d74dbed..26b3a3520 100644 --- a/src/physics.cpp +++ b/src/physics.cpp @@ -29,6 +29,7 @@ #include // for max, min, max_element #include // for sqrt, exp, log, abs, copysign +#include namespace openmc { @@ -344,25 +345,24 @@ void sample_photon_reaction(Particle& p) // Photoelectric effect double prob_after = prob + micro.photoelectric; + int i_grid = micro.index_grid; + double f = micro.interp_factor; + const auto& xs_lower = xt::row(element.cross_sections_, i_grid); + const auto& xs_upper = xt::row(element.cross_sections_, i_grid + 1); + if (prob_after > cutoff) { for (int i_shell = 0; i_shell < element.shells_.size(); ++i_shell) { const auto& shell {element.shells_[i_shell]}; - // Get grid index and interpolation factor - int i_grid = micro.index_grid; - double f = micro.interp_factor; - // Check threshold of reaction - int i_start = shell.threshold; - if (i_grid < i_start) + if (xs_lower(i_shell) == 0) continue; - // Evaluation subshell photoionization cross section - double xs = std::exp(element.cross_sections_(i_grid - i_start) + - f * (element.cross_sections_(i_grid + 1 - i_start) - - element.cross_sections_(i_grid - i_start))); + // Evaluation subshell photoionization cross section + prob += std::exp(xs_lower(i_shell) + + f * (xs_upper(i_shell) - + xs_lower(i_shell))); - prob += xs; if (prob > cutoff) { double E_electron = p.E() - shell.binding_energy; From 70b1706460166ff6d0a05744ad804ef9fd0671ef Mon Sep 17 00:00:00 2001 From: myerspat Date: Thu, 9 Jun 2022 10:39:46 -0500 Subject: [PATCH 023/119] Moved initialized variables into if statement --- src/physics.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/physics.cpp b/src/physics.cpp index 26b3a3520..0df8e63c0 100644 --- a/src/physics.cpp +++ b/src/physics.cpp @@ -345,12 +345,14 @@ void sample_photon_reaction(Particle& p) // Photoelectric effect double prob_after = prob + micro.photoelectric; - int i_grid = micro.index_grid; - double f = micro.interp_factor; - const auto& xs_lower = xt::row(element.cross_sections_, i_grid); - const auto& xs_upper = xt::row(element.cross_sections_, i_grid + 1); if (prob_after > cutoff) { + + int i_grid = micro.index_grid; + double f = micro.interp_factor; + const auto& xs_lower = xt::row(element.cross_sections_, i_grid); + const auto& xs_upper = xt::row(element.cross_sections_, i_grid + 1); + for (int i_shell = 0; i_shell < element.shells_.size(); ++i_shell) { const auto& shell {element.shells_[i_shell]}; From aba235e0b46a33cd6dbbb388d52a27f56e149cba Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Fri, 10 Jun 2022 08:50:52 -0500 Subject: [PATCH 024/119] Update tests/unit_tests/test_stats.py Co-authored-by: Jonathan Shimwell --- tests/unit_tests/test_stats.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/unit_tests/test_stats.py b/tests/unit_tests/test_stats.py index 8e38a7b48..c2578ea8b 100644 --- a/tests/unit_tests/test_stats.py +++ b/tests/unit_tests/test_stats.py @@ -120,6 +120,11 @@ def test_maxwell(): samples = d.sample(n_samples, seed=100) assert samples.mean() == pytest.approx(exp_mean, rel=1e-02) + # A second sample with a different seed + samples_2 = d.sample(n_samples, seed=200) + assert samples_2.mean() == pytest.approx(exp_mean, rel=1e-02) + assert samples_2.mean() != samples.mean() + def test_watt(): From 98a7d5eabc972a986a64307bc709dda7ecadaf3d Mon Sep 17 00:00:00 2001 From: myerspat Date: Fri, 10 Jun 2022 11:57:35 -0500 Subject: [PATCH 025/119] added clang format --- src/photon.cpp | 7 ++++--- src/physics.cpp | 5 ++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/photon.cpp b/src/photon.cpp index bb715cdea..85bd435c9 100644 --- a/src/photon.cpp +++ b/src/photon.cpp @@ -165,8 +165,8 @@ PhotonInteraction::PhotonInteraction(hid_t group) close_dataset(dset); read_dataset(tgroup, "xs", xs); - auto cross_section = xt::view(cross_sections_, - xt::range(shell.threshold, xt::placeholders::_), i); + auto cross_section = xt::view( + cross_sections_, xt::range(shell.threshold, xt::placeholders::_), i); cross_section = xt::where(xs > 0, xt::log(xs), 0); if (object_exists(tgroup, "transitions")) { @@ -577,7 +577,8 @@ void PhotonInteraction::calculate_xs(Particle& p) const for (int i = 0; i < xs_upper.size(); ++i) if (xs_lower(i) != 0) - xs.photoelectric += std::exp(xs_lower(i) + f * (xs_upper(i) - xs_lower(i))); + xs.photoelectric += + std::exp(xs_lower(i) + f * (xs_upper(i) - xs_lower(i))); // Calculate microscopic pair production cross section xs.pair_production = std::exp( diff --git a/src/physics.cpp b/src/physics.cpp index 0df8e63c0..cc712affd 100644 --- a/src/physics.cpp +++ b/src/physics.cpp @@ -361,9 +361,8 @@ void sample_photon_reaction(Particle& p) continue; // Evaluation subshell photoionization cross section - prob += std::exp(xs_lower(i_shell) + - f * (xs_upper(i_shell) - - xs_lower(i_shell))); + prob += std::exp( + xs_lower(i_shell) + f * (xs_upper(i_shell) - xs_lower(i_shell))); if (prob > cutoff) { double E_electron = p.E() - shell.binding_energy; From 0c3d30e6d1ebf373c7d79de1aeacfce88504609e Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Sun, 19 Jun 2022 09:31:38 -0500 Subject: [PATCH 026/119] Update openmc/stats/univariate.py Co-authored-by: Paul Romano --- openmc/stats/univariate.py | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/openmc/stats/univariate.py b/openmc/stats/univariate.py index d733b6193..e4c53c559 100644 --- a/openmc/stats/univariate.py +++ b/openmc/stats/univariate.py @@ -139,14 +139,7 @@ class Discrete(Univariate): def sample(self, n_samples=1, seed=None): np.random.seed(seed) - if len(self.x) == 1: - return np.full((n_samples), self.x[0]) - - xi = np.random.rand(n_samples) - out = np.zeros_like(xi) - for i, c in enumerate(self.cdf()[:-1]): - out[xi >= c] = self.x[i] - return out + return np.random.choice(self.x, n_samples, p=self.p) def normalize(self): norm = sum(self.p) From f52865854ba41746d58b6621215bb5c223c896f2 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Sun, 19 Jun 2022 09:39:53 -0500 Subject: [PATCH 027/119] Apply suggestions from @paulromano Co-authored-by: Paul Romano --- openmc/stats/univariate.py | 18 +++++++++--------- tests/unit_tests/test_stats.py | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/openmc/stats/univariate.py b/openmc/stats/univariate.py index e4c53c559..6875f4e4f 100644 --- a/openmc/stats/univariate.py +++ b/openmc/stats/univariate.py @@ -381,7 +381,7 @@ class PowerLaw(Univariate): pwr = self.n + 1 offset = self.a**pwr span = self.b**pwr - offset - return np.power(offset + xi * span, (1/pwr)) + return np.power(offset + xi * span, 1/pwr) def to_xml_element(self, element_name): """Return XML representation of the power law distribution @@ -463,8 +463,8 @@ class Maxwell(Univariate): @staticmethod def sample_maxwell(t, n_samples): r1, r2, r3 = np.random.rand(3, n_samples) - c = np.power(np.cos(0.5 * np.pi * r3), 2) - return -t * (np.log(r1) + np.log(r2) * c) + c = np.cos(0.5 * np.pi * r3) + return -t * (np.log(r1) + np.log(r2) * c * c) def to_xml_element(self, element_name): """Return XML representation of the Maxwellian distribution @@ -887,7 +887,7 @@ class Tabular(Univariate): if self.interpolation == 'histogram': c[1:] = p[:-1] * np.diff(x) elif self.interpolation == 'linear-linear': - c[1:] = 0.5 * (p[0:-1] + p[1:]) * np.diff(x) + c[1:] = 0.5 * (p[:-1] + p[1:]) * np.diff(x) return np.cumsum(c) @@ -909,7 +909,7 @@ class Tabular(Univariate): # get CDF bins that are above the # sampled values c_i = np.full(n_samples, cdf[0]) - cdf_idx = np.zeros((n_samples,), dtype=int) + cdf_idx = np.zeros(n_samples, dtype=int) for i, val in enumerate(cdf[:-1]): mask = xi > val c_i[mask] = val @@ -918,8 +918,8 @@ class Tabular(Univariate): # get table values at each index where # the random number is less than the next cdf # entry - x_i = np.array([self.x[i] for i in cdf_idx]) - p_i = np.array([p[i] for i in cdf_idx]) + x_i = self.x[cdf_idx] + p_i = self.p[cdf_idx] # TODO: check that probability doesn't exceed the last value @@ -936,8 +936,8 @@ class Tabular(Univariate): elif self.interpolation == 'linear-linear': # get variable and probability values for the # next entry - x_i1 = np.array([self.x[i+1] for i in cdf_idx]) - p_i1 = np.array([p[i+1] for i in cdf_idx]) + x_i1 = self.x[cdf_idx + 1] + p_i1 = self.p[cdf_idx + 1] # compute slope between entries m = (p_i1 - p_i) / (x_i1 - x_i) # set values for zero slope diff --git a/tests/unit_tests/test_stats.py b/tests/unit_tests/test_stats.py index c2578ea8b..f62f2157b 100644 --- a/tests/unit_tests/test_stats.py +++ b/tests/unit_tests/test_stats.py @@ -161,7 +161,7 @@ def test_tabular(): assert d.interpolation == 'linear-linear' assert len(d) == len(x) - # test linear-lienar sampling + # test linear-linear sampling d = openmc.stats.Tabular(x, p) # compute the expected value (mean) of the From f46402fd87f33daf2da4050010973bd00b6c5bae Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Sun, 19 Jun 2022 09:36:31 -0500 Subject: [PATCH 028/119] Adding docstrings to normalize methods --- openmc/stats/univariate.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openmc/stats/univariate.py b/openmc/stats/univariate.py index 6875f4e4f..bbac4c030 100644 --- a/openmc/stats/univariate.py +++ b/openmc/stats/univariate.py @@ -142,6 +142,7 @@ class Discrete(Univariate): return np.random.choice(self.x, n_samples, p=self.p) def normalize(self): + """Normalize the probabilities stored on the distribution""" norm = sum(self.p) self.p = [val / norm for val in self.p] @@ -892,6 +893,7 @@ class Tabular(Univariate): return np.cumsum(c) def normalize(self): + """Normalize the probabilities stored on the distribution""" self.p = np.asarray(self.p) / self.cdf().max() def sample(self, n_samples=1, seed=None): @@ -1115,6 +1117,7 @@ class Mixture(Univariate): return out def normalize(self): + """Normalize the probabilities stored on the distribution""" norm = sum(self.probability) self.probability = [val / norm for val in self.probability] From 862189985b42253cebe12bcd6fc2888c954f6c09 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Sun, 19 Jun 2022 09:51:45 -0500 Subject: [PATCH 029/119] Check that output values do not exceed values in tabulated dist --- openmc/stats/univariate.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/openmc/stats/univariate.py b/openmc/stats/univariate.py index bbac4c030..630bb665b 100644 --- a/openmc/stats/univariate.py +++ b/openmc/stats/univariate.py @@ -923,8 +923,6 @@ class Tabular(Univariate): x_i = self.x[cdf_idx] p_i = self.p[cdf_idx] - # TODO: check that probability doesn't exceed the last value - if self.interpolation == 'histogram': # mask where probability is greater than zero pos_mask = p_i > 0.0 @@ -934,7 +932,9 @@ class Tabular(Univariate): / p_i[pos_mask] # probabilities smaller than zero are set to the random number value p_i[~pos_mask] = x_i[~pos_mask] - return p_i + + samples_out = p_i + elif self.interpolation == 'linear-linear': # get variable and probability values for the # next entry @@ -950,7 +950,10 @@ class Tabular(Univariate): quad = np.power(p_i[non_zero], 2) + 2.0 * m[non_zero] * (xi[non_zero] - c_i[non_zero]) quad[quad < 0.0] = 0.0 m[non_zero] = x_i[non_zero] + (np.sqrt(quad) - p_i[non_zero]) / m[non_zero] - return m + samples_out = m + + assert all(samples_out < self.x[-1]) + return samples_out def to_xml_element(self, element_name): """Return XML representation of the tabular distribution From 967fc9f88bd7b22373505253eec7d5d6af3f7a4a Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Sun, 19 Jun 2022 10:00:27 -0500 Subject: [PATCH 030/119] Adding a 'mean' method to tabular dist --- openmc/stats/univariate.py | 30 +++++++++++++++++++++++++++++- tests/unit_tests/test_stats.py | 27 ++------------------------- 2 files changed, 31 insertions(+), 26 deletions(-) diff --git a/openmc/stats/univariate.py b/openmc/stats/univariate.py index 630bb665b..ae89cb79f 100644 --- a/openmc/stats/univariate.py +++ b/openmc/stats/univariate.py @@ -138,7 +138,6 @@ class Discrete(Univariate): def sample(self, n_samples=1, seed=None): np.random.seed(seed) - return np.random.choice(self.x, n_samples, p=self.p) def normalize(self): @@ -892,6 +891,35 @@ class Tabular(Univariate): return np.cumsum(c) + def mean(self): + """Compute the mean of the tabular distribution""" + if not self.interpolation in ('histogram', 'linear-linear'): + raise NotImplementedError('Can only compute mean for tabular ' + 'distributions using histogram ' + 'or linear-linear interpolation.') + if self.interpolation == 'linear-linear': + mean = 0.0 + self.normalize() + for i in range(1, len(self.x)): + y_min = self.p[i-1] + y_max = self.p[i] + x_min = self.x[i-1] + x_max = self.x[i] + + m = (y_max - y_min) / (x_max - x_min) + + exp_val = (1./3.) * m * (x_max**3 - x_min**3) + exp_val += 0.5 * m * x_min * (x_min**2 - x_max**2) + exp_val += 0.5 * y_min * (x_max**2 - x_min**2) + mean += exp_val + + elif self.interpolation == 'histogram': + mean = 0.5 * (self.x[:-1] + self.x[1:]) + mean *= np.diff(self.cdf()) + mean = sum(mean) + + return mean + def normalize(self): """Normalize the probabilities stored on the distribution""" self.p = np.asarray(self.p) / self.cdf().max() diff --git a/tests/unit_tests/test_stats.py b/tests/unit_tests/test_stats.py index f62f2157b..f789a0dca 100644 --- a/tests/unit_tests/test_stats.py +++ b/tests/unit_tests/test_stats.py @@ -40,7 +40,6 @@ def test_discrete(): assert samples.mean() == pytest.approx(exp_mean, rel=1e-02) - def test_merge_discrete(): x1 = [0.0, 1.0, 10.0] p1 = [0.3, 0.2, 0.5] @@ -164,38 +163,16 @@ def test_tabular(): # test linear-linear sampling d = openmc.stats.Tabular(x, p) - # compute the expected value (mean) of the - # piecewise pdf - mean = 0.0 - d.normalize() - for i in range(1, len(x)): - y_min = d.p[i-1] - y_max = d.p[i] - x_min = d.x[i-1] - x_max = d.x[i] - - m = (y_max - y_min) / (x_max - x_min) - - exp_val = (1./3.) * m * (x_max**3 - x_min**3) - exp_val += 0.5 * m * x_min * (x_min**2 - x_max**2) - exp_val += 0.5 * y_min * (x_max**2 - x_min**2) - - mean += exp_val - n_samples = 100_000 samples = d.sample(n_samples, seed=100) - assert samples.mean() == pytest.approx(mean, rel=1e-03) + assert samples.mean() == pytest.approx(d.mean(), rel=1e-03) # test histogram sampling d = openmc.stats.Tabular(x, p, interpolation='histogram') d.normalize() - mean = 0.5 * (x[:-1] + x[1:]) - mean *= np.diff(d.cdf()) - mean = sum(mean) - samples = d.sample(n_samples, seed=100) - assert samples.mean() == pytest.approx(mean, rel=1e-03) + assert samples.mean() == pytest.approx(d.mean(), rel=1e-03) def test_legendre(): From f92ea393f23a602ef56227e057091fd4a6f811d3 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Mon, 20 Jun 2022 06:39:55 -0500 Subject: [PATCH 031/119] Using np.random.choice in Mixture class --- openmc/stats/univariate.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/openmc/stats/univariate.py b/openmc/stats/univariate.py index ae89cb79f..5528bdb30 100644 --- a/openmc/stats/univariate.py +++ b/openmc/stats/univariate.py @@ -1135,12 +1135,9 @@ class Mixture(Univariate): def sample(self, n_samples=1, seed=None): np.random.seed(seed) - xi = np.random.rand(n_samples) - idx = np.zeros_like(xi, dtype=int) - for i, c in enumerate(self.cdf()[:-1]): - idx[xi >= c] = i + idx = np.random.choice(self.distribution, n_samples, p=self.probability) - out = np.zeros_like(xi) + out = np.zeros_like(idx) for i in np.unique(idx): n_dist_samples = np.count_nonzero(idx == i) samples = self.distribution[i].sample(n_dist_samples) From acd6c567c3e44b3cdee15278728f0d1f8e8918ea Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Tue, 21 Jun 2022 14:19:45 +0000 Subject: [PATCH 032/119] added test for remove eleemnt --- tests/unit_tests/test_material.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/unit_tests/test_material.py b/tests/unit_tests/test_material.py index 02e53a28d..3a976da99 100644 --- a/tests/unit_tests/test_material.py +++ b/tests/unit_tests/test_material.py @@ -38,6 +38,17 @@ def test_remove_nuclide(): assert m.nuclides[1].percent == 2.0 +def test_remove_elements(): + """Test removing elements.""" + m = openmc.Material() + for elem, percent in [('Li', 1.0), ('Be', 1.0)]: + m.add_element(elem, percent) + m.remove_nuclide('Li') + assert len(m.nuclides) == 1 + assert m.nuclides == ['Be9'] + assert m.nuclides[0].percent == 1.0 + + def test_elements(): """Test adding elements.""" m = openmc.Material() From 8fe6c8244cd4e3988d39558d3069b2770099d395 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 21 Jun 2022 14:58:39 -0500 Subject: [PATCH 033/119] Set CMP0128 to NEW for recent versions of CMake --- CMakeLists.txt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3cf72db20..85dcd7084 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,10 +17,15 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules) # Allow user to specify _ROOT variables -if (NOT (CMAKE_VERSION VERSION_LESS 3.12)) +if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.12) cmake_policy(SET CMP0074 NEW) endif() +# Enable correct usage of CXX_EXTENSIONS +if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.22) + cmake_policy(SET CMP0128 NEW) +endif() + #=============================================================================== # Command line options #=============================================================================== @@ -118,7 +123,7 @@ endif() # Version 1.12 of HDF5 deprecates the H5Oget_info_by_idx() interface. # Thus, we give these flags to allow usage of the old interface in newer # versions of HDF5. -if(NOT (${HDF5_VERSION} VERSION_LESS 1.12.0)) +if(${HDF5_VERSION} VERSION_GREATER_EQUAL 1.12.0) list(APPEND cxxflags -DH5Oget_info_by_idx_vers=1 -DH5O_info_t_vers=1) endif() @@ -205,7 +210,7 @@ endif() #=============================================================================== # CMake 3.13+ will complain about policy CMP0079 unless it is set explicitly -if (NOT (CMAKE_VERSION VERSION_LESS 3.13)) +if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.13) cmake_policy(SET CMP0079 NEW) endif() From 7bbc778fd7bb56dcb98eb787c14f711cae78711f Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Tue, 21 Jun 2022 23:27:44 +0100 Subject: [PATCH 034/119] [skip ci] review suggestions from @paulromano --- openmc/data/data.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openmc/data/data.py b/openmc/data/data.py index 5aadfac87..914c6c622 100644 --- a/openmc/data/data.py +++ b/openmc/data/data.py @@ -2,6 +2,7 @@ import itertools import json import os import re +from pathlib import Path from math import sqrt from warnings import warn From 87dafd1e3167a814f4e5b148e82242817cbf02e1 Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Tue, 21 Jun 2022 23:14:49 +0000 Subject: [PATCH 035/119] review comments from @paulromano --- docs/source/pythonapi/data.rst | 1 + openmc/material.py | 5 +++-- setup.py | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/source/pythonapi/data.rst b/docs/source/pythonapi/data.rst index 95fdfeca9..6f5c006c2 100644 --- a/docs/source/pythonapi/data.rst +++ b/docs/source/pythonapi/data.rst @@ -63,6 +63,7 @@ Core Functions atomic_weight dose_coefficients gnd_name + half_life isotopes linearize thin diff --git a/openmc/material.py b/openmc/material.py index e49696706..70cfa7ade 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -152,9 +152,10 @@ class Material(IDManagerMixin): for key, value in atoms_per_barn_cm2.items(): half_life = openmc.data.half_life(key) if half_life: - atoms = value[1] * self.volume * 1e24 - activity = math.log(2) * atoms / half_life + atoms = value[1] * self.volume + activity = atoms / half_life total_activity += activity + total_activity = math.log(2) * total_activity * 1e24 return total_activity diff --git a/setup.py b/setup.py index b2e3f160a..477f29dec 100755 --- a/setup.py +++ b/setup.py @@ -32,7 +32,7 @@ kwargs = { # Data files and libraries 'package_data': { 'openmc.lib': ['libopenmc.{}'.format(suffix)], - 'openmc.data': ['mass16.txt', 'BREMX.DAT', '*.h5'], + 'openmc.data': ['mass16.txt', 'BREMX.DAT', 'half_life.json', '*.h5'], 'openmc.data.effective_dose': ['*.txt'] }, From 53b5cce209a9777368da90a53e29b7658b40295c Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Wed, 22 Jun 2022 08:01:07 +0100 Subject: [PATCH 036/119] Applying missed suggestions Co-authored-by: Paul Romano --- openmc/data/data.py | 13 ++++++------- openmc/material.py | 4 ++-- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/openmc/data/data.py b/openmc/data/data.py index 914c6c622..d50afecc2 100644 --- a/openmc/data/data.py +++ b/openmc/data/data.py @@ -278,9 +278,9 @@ def atomic_weight(element): def half_life(isotope): - """Return half-life of isotope in seconds. Returns None if isotope is stable + """Return half-life of isotope in seconds or None if isotope is stable - Half-life values are from `ENDF/B VIII.0 Decay Reaction Sublibrary + Half-life values are from the `ENDF/B-VIII.0 decay sublibrary `_. Parameters @@ -291,15 +291,14 @@ def half_life(isotope): Returns ------- float - Half-life of isotope in [seconds] + Half-life of isotope in [s] """ global _HALF_LIFE if not _HALF_LIFE: - # Load data from AME2016 file - half_life_filename = os.path.join(os.path.dirname(__file__), 'half_life.json') - with open(half_life_filename, 'r') as f: - _HALF_LIFE = json.load(f) + # Load ENDF/B-VIII.0 data from JSON file + half_life_path = Path(__file__).with_name('half_life.json') + _HALF_LIFE = json.load(half_life_path.read_text()) if isotope.title() not in _HALF_LIFE.keys(): return None diff --git a/openmc/material.py b/openmc/material.py index 70cfa7ade..95fd7aaf7 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -147,9 +147,9 @@ class Material(IDManagerMixin): def activity(self): """Returns the total activity of the material in Becquerels.""" - atoms_per_barn_cm2 = self.get_nuclide_atom_densities() + atoms_per_barn_cm = self.get_nuclide_atom_densities() total_activity = 0 - for key, value in atoms_per_barn_cm2.items(): + for key, value in atoms_per_barn_cm.items(): half_life = openmc.data.half_life(key) if half_life: atoms = value[1] * self.volume From 9b36424e1632aa69716f8f07a51fc8c68d6ad3bf Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Wed, 22 Jun 2022 08:19:00 +0100 Subject: [PATCH 037/119] added remove element to material --- openmc/material.py | 17 +++++++++++++++++ tests/unit_tests/test_material.py | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/openmc/material.py b/openmc/material.py index de1b2187b..188ec2d47 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -407,6 +407,23 @@ class Material(IDManagerMixin): if nuclide == nuc.name: self.nuclides.remove(nuc) + def remove_element(self, element): + """Remove an element from the material + + Parameters + ---------- + element : str + Element to remove + + """ + cv.check_type('element', element, str) + + # If the Material contains the element, delete it + for nuc in reversed(self.nuclides): + element_name = re.split(r'(\d+)', nuc) + if nuc == element_name: + self.nuclides.remove(nuc) + def add_macroscopic(self, macroscopic): """Add a macroscopic to the material. This will also set the density of the material to 1.0, unless it has been otherwise set, diff --git a/tests/unit_tests/test_material.py b/tests/unit_tests/test_material.py index 3a976da99..dda75c88b 100644 --- a/tests/unit_tests/test_material.py +++ b/tests/unit_tests/test_material.py @@ -43,7 +43,7 @@ def test_remove_elements(): m = openmc.Material() for elem, percent in [('Li', 1.0), ('Be', 1.0)]: m.add_element(elem, percent) - m.remove_nuclide('Li') + m.remove_element('Li') assert len(m.nuclides) == 1 assert m.nuclides == ['Be9'] assert m.nuclides[0].percent == 1.0 From 839c0fe81b1b65d205429f79dab317b3251b606a Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Wed, 22 Jun 2022 08:32:37 +0100 Subject: [PATCH 038/119] refined remove element --- openmc/material.py | 5 +++-- tests/unit_tests/test_material.py | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/openmc/material.py b/openmc/material.py index 188ec2d47..d8fd1859f 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -420,8 +420,9 @@ class Material(IDManagerMixin): # If the Material contains the element, delete it for nuc in reversed(self.nuclides): - element_name = re.split(r'(\d+)', nuc) - if nuc == element_name: + element_name = re.split(r'(\d+)', nuc.name)[0] + print(element_name, element) + if element_name == element: self.nuclides.remove(nuc) def add_macroscopic(self, macroscopic): diff --git a/tests/unit_tests/test_material.py b/tests/unit_tests/test_material.py index dda75c88b..bfa40bb21 100644 --- a/tests/unit_tests/test_material.py +++ b/tests/unit_tests/test_material.py @@ -45,7 +45,7 @@ def test_remove_elements(): m.add_element(elem, percent) m.remove_element('Li') assert len(m.nuclides) == 1 - assert m.nuclides == ['Be9'] + assert m.nuclides[0].name == 'Be9' assert m.nuclides[0].percent == 1.0 From 649f4a28f260574725d9ae847a22d59ad42b69e3 Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Wed, 22 Jun 2022 14:21:02 +0200 Subject: [PATCH 039/119] Apply suggestions from code review Co-authored-by: Paul Romano --- openmc/data/data.py | 7 ++----- openmc/material.py | 6 ++---- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/openmc/data/data.py b/openmc/data/data.py index d50afecc2..108b3c63a 100644 --- a/openmc/data/data.py +++ b/openmc/data/data.py @@ -298,12 +298,9 @@ def half_life(isotope): if not _HALF_LIFE: # Load ENDF/B-VIII.0 data from JSON file half_life_path = Path(__file__).with_name('half_life.json') - _HALF_LIFE = json.load(half_life_path.read_text()) + _HALF_LIFE = json.loads(half_life_path.read_text()) - if isotope.title() not in _HALF_LIFE.keys(): - return None - - return _HALF_LIFE[isotope.title()] + return _HALF_LIFE.get(isotope.title()) def water_density(temperature, pressure=0.1013): """Return the density of liquid water at a given temperature and pressure. diff --git a/openmc/material.py b/openmc/material.py index 95fd7aaf7..47f39b990 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -152,10 +152,8 @@ class Material(IDManagerMixin): for key, value in atoms_per_barn_cm.items(): half_life = openmc.data.half_life(key) if half_life: - atoms = value[1] * self.volume - activity = atoms / half_life - total_activity += activity - total_activity = math.log(2) * total_activity * 1e24 + total_activity += value[1] / half_life + total_activity *= math.log(2) * 1e24 * self.volume return total_activity From a003c5850a9dba44355c1af50ce5661ec74d742f Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Wed, 22 Jun 2022 14:59:21 +0100 Subject: [PATCH 040/119] added type hints to match doc strings --- openmc/material.py | 69 ++++++++++++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 30 deletions(-) diff --git a/openmc/material.py b/openmc/material.py index de1b2187b..31e674611 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -3,8 +3,11 @@ from collections.abc import Iterable from copy import deepcopy from numbers import Real from pathlib import Path +import os import re +import typing # imported separately as py3.8 requires typing.Iterable import warnings +from typing import Optional, Union from xml.etree import ElementTree as ET import numpy as np @@ -206,7 +209,7 @@ class Material(IDManagerMixin): return self._volume @name.setter - def name(self, name): + def name(self, name: Optional[str]): if name is not None: cv.check_type(f'name for Material ID="{self._id}"', name, str) @@ -215,25 +218,25 @@ class Material(IDManagerMixin): self._name = '' @temperature.setter - def temperature(self, temperature): + def temperature(self, temperature: Optional[Real]): cv.check_type(f'Temperature for Material ID="{self._id}"', temperature, (Real, type(None))) self._temperature = temperature @depletable.setter - def depletable(self, depletable): + def depletable(self, depletable: bool): cv.check_type(f'Depletable flag for Material ID="{self._id}"', depletable, bool) self._depletable = depletable @volume.setter - def volume(self, volume): + def volume(self, volume: Real): if volume is not None: cv.check_type('material volume', volume, Real) self._volume = volume @isotropic.setter - def isotropic(self, isotropic): + def isotropic(self, isotropic: typing.Iterable[str]): cv.check_iterable_type('Isotropic scattering nuclides', isotropic, str) self._isotropic = list(isotropic) @@ -251,7 +254,7 @@ class Material(IDManagerMixin): return density*self.volume @classmethod - def from_hdf5(cls, group): + def from_hdf5(cls, group: str): """Create material from HDF5 group Parameters @@ -305,7 +308,7 @@ class Material(IDManagerMixin): return material - def add_volume_information(self, volume_calc): + def add_volume_information(self, volume_calc: openmc.VolumeCalculation): """Add volume information to a material. Parameters @@ -325,7 +328,7 @@ class Material(IDManagerMixin): raise ValueError('No volume information found for material ID={}.' .format(self.id)) - def set_density(self, units, density=None): + def set_density(self, units: str, density:Optional[float]=None): """Set the density of the material Parameters @@ -357,7 +360,7 @@ class Material(IDManagerMixin): density, Real) self._density = density - def add_nuclide(self, nuclide, percent, percent_type='ao'): + def add_nuclide(self, nuclide: str, percent: float, percent_type: str='ao'): """Add a nuclide to the material Parameters @@ -391,7 +394,7 @@ class Material(IDManagerMixin): self._nuclides.append(NuclideTuple(nuclide, percent, percent_type)) - def remove_nuclide(self, nuclide): + def remove_nuclide(self, nuclide: str): """Remove a nuclide from the material Parameters @@ -407,7 +410,7 @@ class Material(IDManagerMixin): if nuclide == nuc.name: self.nuclides.remove(nuc) - def add_macroscopic(self, macroscopic): + def add_macroscopic(self, macroscopic: str): """Add a macroscopic to the material. This will also set the density of the material to 1.0, unless it has been otherwise set, as a default for Macroscopic cross sections. @@ -449,7 +452,7 @@ class Material(IDManagerMixin): if self._density is None: self.set_density('macro', 1.0) - def remove_macroscopic(self, macroscopic): + def remove_macroscopic(self, macroscopic: str): """Remove a macroscopic from the material Parameters @@ -468,8 +471,10 @@ class Material(IDManagerMixin): if macroscopic == self._macroscopic: self._macroscopic = None - def add_element(self, element, percent, percent_type='ao', enrichment=None, - enrichment_target=None, enrichment_type=None): + def add_element(self, element: str, percent: float, percent_type: str='ao', + enrichment: Optional[float]=None, + enrichment_target: Optional[str]=None, + enrichment_type: Optional[str]=None): """Add a natural element to the material Parameters @@ -574,8 +579,10 @@ class Material(IDManagerMixin): enrichment_type): self.add_nuclide(*nuclide) - def add_elements_from_formula(self, formula, percent_type='ao', enrichment=None, - enrichment_target=None, enrichment_type=None): + def add_elements_from_formula(self, formula: str, percent_type: str='ao', + enrichment: Optional[float]=None, + enrichment_target: Optional[float]=None, + enrichment_type: Optional[str]=None): """Add a elements from a chemical formula to the material. .. versionadded:: 0.12 @@ -672,7 +679,7 @@ class Material(IDManagerMixin): else: self.add_element(element, percent, percent_type) - def add_s_alpha_beta(self, name, fraction=1.0): + def add_s_alpha_beta(self, name: str, fraction: float=1.0): r"""Add an :math:`S(\alpha,\beta)` table to the material Parameters @@ -821,7 +828,7 @@ class Material(IDManagerMixin): return nuclides - def get_mass_density(self, nuclide=None): + def get_mass_density(self, nuclide: Optional[str]=None): """Return mass density of one or all nuclides Parameters @@ -844,7 +851,7 @@ class Material(IDManagerMixin): mass_density += density_i return mass_density - def get_mass(self, nuclide=None): + def get_mass(self, nuclide: Optional[str]=None): """Return mass of one or all nuclides. Note that this method requires that the :attr:`Material.volume` has @@ -866,7 +873,7 @@ class Material(IDManagerMixin): raise ValueError("Volume must be set in order to determine mass.") return self.volume*self.get_mass_density(nuclide) - def clone(self, memo=None): + def clone(self, memo: Optional[dict]=None): """Create a copy of this material with a new unique ID. Parameters @@ -905,7 +912,7 @@ class Material(IDManagerMixin): return memo[self] - def _get_nuclide_xml(self, nuclide): + def _get_nuclide_xml(self, nuclide: str): xml_element = ET.Element("nuclide") xml_element.set("name", nuclide.name) @@ -916,13 +923,13 @@ class Material(IDManagerMixin): return xml_element - def _get_macroscopic_xml(self, macroscopic): + def _get_macroscopic_xml(self, macroscopic: str): xml_element = ET.Element("macroscopic") xml_element.set("name", macroscopic) return xml_element - def _get_nuclides_xml(self, nuclides): + def _get_nuclides_xml(self, nuclides: typing.Iterable[str]): xml_elements = [] for nuclide in nuclides: xml_elements.append(self._get_nuclide_xml(nuclide)) @@ -989,7 +996,9 @@ class Material(IDManagerMixin): return element @classmethod - def mix_materials(cls, materials, fracs, percent_type='ao', name=None): + def mix_materials(cls, materials: typing.Iterable[openmc.Material], + fracs: typing.Iterable[float], percent_type: str='ao', + name: Optional[str]=None): """Mix materials together based on atom, weight, or volume fractions .. versionadded:: 0.12 @@ -1087,7 +1096,7 @@ class Material(IDManagerMixin): return new_mat @classmethod - def from_xml_element(cls, elem): + def from_xml_element(cls, elem: ET.Element): """Generate material from an XML element Parameters @@ -1190,7 +1199,7 @@ class Materials(cv.CheckedList): if cross_sections is not None: self._cross_sections = Path(cross_sections) - def append(self, material): + def append(self, material: openmc.Material): """Append material to collection Parameters @@ -1201,7 +1210,7 @@ class Materials(cv.CheckedList): """ super().append(material) - def insert(self, index, material): + def insert(self, index: int, material: openmc.Material): """Insert material before index Parameters @@ -1218,7 +1227,7 @@ class Materials(cv.CheckedList): for material in self: material.make_isotropic_in_lab() - def export_to_xml(self, path='materials.xml'): + def export_to_xml(self, path: Union[str, os.PathLike]='materials.xml'): """Export material collection to an XML file. Parameters @@ -1265,12 +1274,12 @@ class Materials(cv.CheckedList): fh.write('\n') @classmethod - def from_xml(cls, path='materials.xml'): + def from_xml(cls, path: Union[str, os.PathLike]='materials.xml'): """Generate materials collection from XML file Parameters ---------- - path : str, optional + path : str Path to materials XML file Returns From c2018c41fdc87d069e00cbe4e87cc07b87d8fc52 Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Wed, 22 Jun 2022 22:45:37 +0200 Subject: [PATCH 041/119] More efficient regex usage Co-authored-by: Paul Romano --- openmc/material.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/openmc/material.py b/openmc/material.py index d8fd1859f..7e142f09a 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -420,8 +420,7 @@ class Material(IDManagerMixin): # If the Material contains the element, delete it for nuc in reversed(self.nuclides): - element_name = re.split(r'(\d+)', nuc.name)[0] - print(element_name, element) + element_name = re.split(r'\d+', nuc.name)[0] if element_name == element: self.nuclides.remove(nuc) From bebf729ad0872b48504243326e06c3a0dd587790 Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Wed, 22 Jun 2022 22:41:01 +0100 Subject: [PATCH 042/119] removed circular import types --- openmc/material.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/openmc/material.py b/openmc/material.py index 31e674611..78655007f 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -308,7 +308,7 @@ class Material(IDManagerMixin): return material - def add_volume_information(self, volume_calc: openmc.VolumeCalculation): + def add_volume_information(self, volume_calc): """Add volume information to a material. Parameters @@ -472,9 +472,9 @@ class Material(IDManagerMixin): self._macroscopic = None def add_element(self, element: str, percent: float, percent_type: str='ao', - enrichment: Optional[float]=None, - enrichment_target: Optional[str]=None, - enrichment_type: Optional[str]=None): + enrichment: Optional[float]=None, + enrichment_target: Optional[str]=None, + enrichment_type: Optional[str]=None): """Add a natural element to the material Parameters @@ -996,9 +996,8 @@ class Material(IDManagerMixin): return element @classmethod - def mix_materials(cls, materials: typing.Iterable[openmc.Material], - fracs: typing.Iterable[float], percent_type: str='ao', - name: Optional[str]=None): + def mix_materials(cls, materials, fracs: typing.Iterable[float], + percent_type: str='ao', name: Optional[str]=None): """Mix materials together based on atom, weight, or volume fractions .. versionadded:: 0.12 @@ -1199,7 +1198,7 @@ class Materials(cv.CheckedList): if cross_sections is not None: self._cross_sections = Path(cross_sections) - def append(self, material: openmc.Material): + def append(self, material): """Append material to collection Parameters @@ -1210,7 +1209,7 @@ class Materials(cv.CheckedList): """ super().append(material) - def insert(self, index: int, material: openmc.Material): + def insert(self, index: int, material): """Insert material before index Parameters From 270ef8346ceadf03c1724db355f4ec06768e1f07 Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Wed, 22 Jun 2022 23:18:14 +0100 Subject: [PATCH 043/119] added metastable activity test --- tests/unit_tests/test_material.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/unit_tests/test_material.py b/tests/unit_tests/test_material.py index c5d3276a0..c56c350b0 100644 --- a/tests/unit_tests/test_material.py +++ b/tests/unit_tests/test_material.py @@ -423,3 +423,11 @@ def test_activity_of_tritium(): m1.volume = 1 assert pytest.approx(m1.activity) == 3.559778e14 + +def test_activity_of_metastable(): + """Checks that 1 mol of a Tc99_m1 nuclides has the correct activity""" + m1 = openmc.Material() + m1.add_nuclide("Tc99_m1", 1) + m1.set_density('g/cm3', 1) + m1.volume = 98.9 + assert pytest.approx(m1.activity, rel=0.001) == 1.93e19 From 344c2a46404cdc74a114efd2f78fb8bc86dc46e2 Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Wed, 22 Jun 2022 23:27:41 +0100 Subject: [PATCH 044/119] lower case nucs in half-life --- openmc/data/data.py | 2 +- openmc/data/half_life.json | 7122 ++++++++++++++++++------------------ 2 files changed, 3562 insertions(+), 3562 deletions(-) diff --git a/openmc/data/data.py b/openmc/data/data.py index 108b3c63a..3a3cf5826 100644 --- a/openmc/data/data.py +++ b/openmc/data/data.py @@ -300,7 +300,7 @@ def half_life(isotope): half_life_path = Path(__file__).with_name('half_life.json') _HALF_LIFE = json.loads(half_life_path.read_text()) - return _HALF_LIFE.get(isotope.title()) + return _HALF_LIFE.get(isotope.lower()) def water_density(temperature, pressure=0.1013): """Return the density of liquid water at a given temperature and pressure. diff --git a/openmc/data/half_life.json b/openmc/data/half_life.json index bb67da75d..4f670918b 100644 --- a/openmc/data/half_life.json +++ b/openmc/data/half_life.json @@ -1,3563 +1,3563 @@ { - "H3": 388789600.0, - "H4": 9.90652e-23, - "H5": 7.99473e-23, - "H6": 2.84812e-22, - "H7": 2.3e-23, - "He5": 7.595e-22, - "He6": 0.8067, - "He7": 3.038e-21, - "He8": 0.1191, - "He9": 7e-21, - "He10": 1.519e-21, - "Li4": 7.55721e-23, - "Li5": 3.06868e-22, - "Li8": 0.838, - "Li9": 0.1783, - "Li10": 2e-21, - "Li11": 0.00859, - "Li12": 1e-08, - "Be5": 1e-09, - "Be6": 4.95326e-21, - "Be7": 4598208.0, - "Be8": 8.18132e-17, - "Be10": 47652000000000.0, - "Be11": 13.81, - "Be12": 0.0213, - "Be13": 2.7e-21, - "Be14": 0.00435, - "Be15": 2e-07, - "Be16": 2e-07, - "B6": 1e-09, - "B7": 3.255e-22, - "B8": 0.77, - "B9": 8.43888e-19, - "B12": 0.0202, - "B13": 0.01736, - "B14": 0.0125, - "B15": 0.00993, - "B16": 1.9e-10, - "B17": 0.00508, - "B18": 2.6e-08, - "B19": 0.00292, - "C8": 1.9813e-21, - "C9": 0.1265, - "C10": 19.29, - "C11": 1223.1, - "C14": 179878000000.0, - "C15": 2.449, - "C16": 0.747, - "C17": 0.193, - "C18": 0.092, - "C19": 0.049, - "C20": 0.0145, - "C21": 3e-08, - "C22": 0.0062, - "N10": 2e-22, - "N11": 3.12742e-22, - "N12": 0.011, - "N13": 597.9, - "N16": 7.13, - "N17": 4.171, - "N18": 0.624, - "N19": 0.271, - "N20": 0.13, - "N21": 0.085, - "N22": 0.024, - "N23": 0.0145, - "N24": 5.2e-08, - "N25": 2.6e-07, - "O12": 1.13925e-21, - "O13": 0.00858, - "O14": 70.606, - "O15": 122.24, - "O19": 26.88, - "O20": 13.51, - "O21": 3.42, - "O22": 2.25, - "O23": 0.0905, - "O24": 0.065, - "O25": 5e-08, - "O26": 4e-08, - "O27": 2.6e-07, - "O28": 1e-07, - "F14": 5.0007e-22, - "F15": 4.557e-22, - "F16": 1.13925e-20, - "F17": 64.49, - "F18": 6586.2, - "F20": 11.163, - "F21": 4.158, - "F22": 4.23, - "F23": 2.23, - "F24": 0.39, - "F25": 0.05, - "F26": 0.0096, - "F27": 0.005, - "F28": 4e-08, - "F29": 0.0025, - "F30": 2.6e-07, - "F31": 2.5e-07, - "Ne16": 3.73524e-21, - "Ne17": 0.1092, - "Ne18": 1.672, - "Ne19": 17.22, - "Ne23": 37.24, - "Ne24": 202.8, - "Ne25": 0.602, - "Ne26": 0.197, - "Ne27": 0.032, - "Ne28": 0.0189, - "Ne29": 0.0148, - "Ne30": 0.0073, - "Ne31": 0.0034, - "Ne32": 0.0035, - "Ne33": 1.8e-07, - "Ne34": 6e-08, - "Na18": 1.3e-21, - "Na19": 4e-08, - "Na20": 0.4479, - "Na21": 22.49, - "Na22": 82134970.0, - "Na24": 53989.2, - "Na24_m1": 0.02018, - "Na25": 59.1, - "Na26": 1.077, - "Na27": 0.301, - "Na28": 0.0305, - "Na29": 0.0449, - "Na30": 0.048, - "Na31": 0.017, - "Na32": 0.0132, - "Na33": 0.008, - "Na34": 0.0055, - "Na35": 0.0015, - "Na36": 1.8e-07, - "Na37": 6e-08, - "Mg19": 4e-12, - "Mg20": 0.0908, - "Mg21": 0.122, - "Mg22": 3.8755, - "Mg23": 11.317, - "Mg27": 567.48, - "Mg28": 75294.0, - "Mg29": 1.3, - "Mg30": 0.335, - "Mg31": 0.232, - "Mg32": 0.086, - "Mg33": 0.0905, - "Mg34": 0.02, - "Mg35": 0.07, - "Mg36": 0.0039, - "Mg37": 2.6e-07, - "Mg38": 2.6e-07, - "Mg39": 1.8e-07, - "Mg40": 1.7e-07, - "Al21": 3.5e-08, - "Al22": 0.059, - "Al23": 0.47, - "Al24": 2.053, - "Al24_m1": 0.13, - "Al25": 7.183, - "Al26": 22626800000000.0, - "Al26_m1": 6.3452, - "Al28": 134.484, - "Al29": 393.6, - "Al30": 3.62, - "Al31": 0.644, - "Al32": 0.033, - "Al33": 0.0417, - "Al34": 0.042, - "Al35": 0.0386, - "Al36": 0.09, - "Al37": 0.0107, - "Al38": 0.0076, - "Al39": 7.6e-06, - "Al40": 2.6e-07, - "Al41": 2.6e-07, - "Al42": 1.7e-07, - "Si22": 0.029, - "Si23": 0.0423, - "Si24": 0.14, - "Si25": 0.22, - "Si26": 2.234, - "Si27": 4.16, - "Si31": 9438.0, - "Si32": 4828310000.0, - "Si33": 6.11, - "Si34": 2.77, - "Si35": 0.78, - "Si36": 0.45, - "Si37": 0.09, - "Si38": 1e-06, - "Si39": 0.0475, - "Si40": 0.033, - "Si41": 0.02, - "Si42": 0.0125, - "Si43": 6e-08, - "Si44": 3.6e-07, - "P24": 0.0074, - "P25": 3e-08, - "P26": 0.0437, - "P27": 0.26, - "P28": 0.2703, - "P29": 4.142, - "P30": 149.88, - "P32": 1232323.0, - "P33": 2189376.0, - "P34": 12.43, - "P35": 47.3, - "P36": 5.6, - "P37": 2.31, - "P38": 0.64, - "P39": 0.28, - "P40": 0.125, - "P41": 0.1, - "P42": 0.0485, - "P43": 0.0365, - "P44": 0.0185, - "P45": 2e-07, - "P46": 2e-07, - "S26": 0.01, - "S27": 0.0155, - "S28": 0.125, - "S29": 0.187, - "S30": 1.178, - "S31": 2.572, - "S35": 7560864.0, - "S37": 303.0, - "S38": 10218.0, - "S39": 11.5, - "S40": 8.8, - "S41": 1.99, - "S42": 1.013, - "S43": 0.28, - "S44": 0.1, - "S45": 0.068, - "S46": 0.05, - "S48": 2e-07, - "S49": 2e-07, - "Cl28": 0.0017, - "Cl29": 2e-08, - "Cl30": 3e-08, - "Cl31": 0.15, - "Cl32": 0.298, - "Cl33": 2.511, - "Cl34": 1.5264, - "Cl34_m1": 1920.0, - "Cl36": 9498840000000.0, - "Cl38": 2233.8, - "Cl38_m1": 0.715, - "Cl39": 3336.0, - "Cl40": 81.0, - "Cl41": 38.4, - "Cl42": 6.8, - "Cl43": 3.13, - "Cl44": 0.56, - "Cl45": 0.413, - "Cl46": 0.232, - "Cl47": 0.101, - "Cl48": 2e-07, - "Cl49": 1.7e-07, - "Cl50": 0.02, - "Cl51": 2e-07, - "Ar30": 2e-08, - "Ar31": 0.0151, - "Ar32": 0.098, - "Ar33": 0.173, - "Ar34": 0.8445, - "Ar35": 1.775, - "Ar37": 3027456.0, - "Ar39": 8488990000.0, - "Ar41": 6576.6, - "Ar42": 1038250000.0, - "Ar43": 322.2, - "Ar44": 712.2, - "Ar45": 21.48, - "Ar46": 8.4, - "Ar47": 1.23, - "Ar48": 0.475, - "Ar49": 0.17, - "Ar50": 0.085, - "Ar51": 2e-07, - "Ar52": 0.01, - "Ar53": 0.003, - "K32": 0.0033, - "K33": 2.5e-08, - "K34": 2.5e-08, - "K35": 0.178, - "K36": 0.342, - "K37": 1.226, - "K38": 458.16, - "K38_m1": 0.924, - "K40": 3.93839e16, - "K42": 44496.0, - "K43": 80280.0, - "K44": 1327.8, - "K45": 1068.6, - "K46": 105.0, - "K47": 17.5, - "K48": 6.8, - "K49": 1.26, - "K50": 0.472, - "K51": 0.365, - "K52": 0.105, - "K53": 0.03, - "K54": 0.01, - "K55": 0.003, - "Ca34": 3.5e-08, - "Ca35": 0.0257, - "Ca36": 0.102, - "Ca37": 0.1811, - "Ca38": 0.44, - "Ca39": 0.8596, - "Ca41": 3218880000000.0, - "Ca45": 14049500.0, - "Ca47": 391910.4, - "Ca48": 7.25824e26, - "Ca49": 523.08, - "Ca50": 13.9, - "Ca51": 10.0, - "Ca52": 4.6, - "Ca53": 0.09, - "Ca54": 0.086, - "Ca55": 0.022, - "Ca56": 0.01, - "Ca57": 0.005, - "Sc36": 0.0088, - "Sc37": 0.056, - "Sc38": 0.0423, - "Sc39": 3e-07, - "Sc40": 0.1823, - "Sc41": 0.5963, - "Sc42": 0.6808, - "Sc42_m1": 62.0, - "Sc43": 14007.6, - "Sc44": 14292.0, - "Sc44_m1": 210996.0, - "Sc45_m1": 0.318, - "Sc46": 7239456.0, - "Sc46_m1": 18.75, - "Sc47": 289370.9, - "Sc48": 157212.0, - "Sc49": 3430.8, - "Sc50": 102.5, - "Sc50_m1": 0.35, - "Sc51": 12.4, - "Sc52": 8.2, - "Sc53": 3.0, - "Sc54": 0.36, - "Sc55": 0.105, - "Sc56": 0.06, - "Sc57": 0.013, - "Sc58": 0.012, - "Sc59": 0.01, - "Sc60": 0.003, - "Ti38": 1.2e-07, - "Ti39": 0.032, - "Ti40": 0.0533, - "Ti41": 0.0804, - "Ti42": 0.199, - "Ti43": 0.509, - "Ti44": 1893460000.0, - "Ti45": 11088.0, - "Ti51": 345.6, - "Ti52": 102.0, - "Ti53": 32.7, - "Ti54": 1.5, - "Ti55": 1.3, - "Ti56": 0.2, - "Ti57": 0.06, - "Ti58": 0.059, - "Ti59": 0.03, - "Ti60": 0.022, - "Ti61": 3e-07, - "Ti62": 0.01, - "Ti63": 0.003, - "V40": 0.0077, - "V41": 0.0244, - "V42": 5.5e-08, - "V43": 0.8, - "V44": 0.111, - "V44_m1": 0.15, - "V45": 0.547, - "V46": 0.4225, - "V46_m1": 0.00102, - "V47": 1956.0, - "V48": 1380110.0, - "V49": 28512000.0, - "V50": 4.41806e24, - "V52": 224.58, - "V53": 92.58, - "V54": 49.8, - "V55": 6.54, - "V56": 0.216, - "V57": 0.35, - "V58": 0.185, - "V59": 0.075, - "V60": 0.068, - "V61": 0.047, - "V62": 1.5e-07, - "V63": 0.017, - "V64": 0.019, - "V65": 0.01, - "Cr42": 0.014, - "Cr43": 0.0216, - "Cr44": 0.0535, - "Cr45": 0.0609, - "Cr46": 0.26, - "Cr47": 0.5, - "Cr48": 77616.0, - "Cr49": 2538.0, - "Cr51": 2393366.0, - "Cr55": 209.82, - "Cr56": 356.4, - "Cr57": 21.1, - "Cr58": 7.0, - "Cr59": 0.46, - "Cr60": 0.49, - "Cr61": 0.27, - "Cr62": 0.19, - "Cr63": 0.129, - "Cr64": 0.043, - "Cr65": 0.027, - "Cr66": 0.01, - "Cr67": 0.05, - "Mn44": 1.05e-07, - "Mn45": 7e-08, - "Mn46": 0.0345, - "Mn47": 0.1, - "Mn48": 0.1581, - "Mn49": 0.382, - "Mn50": 0.28319, - "Mn50_m1": 105.0, - "Mn51": 2772.0, - "Mn52": 483062.4, - "Mn52_m1": 1266.0, - "Mn53": 116763000000000.0, - "Mn54": 26961120.0, - "Mn56": 9284.04, - "Mn57": 85.4, - "Mn58": 3.0, - "Mn58_m1": 65.4, - "Mn59": 4.59, - "Mn60": 51.0, - "Mn60_m1": 1.77, - "Mn61": 0.67, - "Mn62": 0.671, - "Mn62_m1": 0.092, - "Mn63": 0.29, - "Mn64": 0.09, - "Mn65": 0.092, - "Mn66": 0.064, - "Mn67": 0.047, - "Mn68": 0.028, - "Mn69": 0.014, - "Fe45": 0.00203, - "Fe46": 0.013, - "Fe47": 0.0219, - "Fe48": 0.044, - "Fe49": 0.0647, - "Fe50": 0.155, - "Fe51": 0.305, - "Fe52": 29790.0, - "Fe52_m1": 45.9, - "Fe53": 510.6, - "Fe53_m1": 152.4, - "Fe55": 86594050.0, - "Fe59": 3844368.0, - "Fe60": 47336400000000.0, - "Fe61": 358.8, - "Fe62": 68.0, - "Fe63": 6.1, - "Fe64": 2.0, - "Fe65": 0.81, - "Fe65_m1": 1.12, - "Fe66": 0.44, - "Fe67": 0.416, - "Fe68": 0.187, - "Fe69": 0.109, - "Fe70": 0.094, - "Fe71": 0.028, - "Fe72": 1.5e-07, - "Co49": 3.5e-08, - "Co50": 0.044, - "Co51": 2e-07, - "Co52": 0.115, - "Co53": 0.24, - "Co53_m1": 0.247, - "Co54": 0.19328, - "Co54_m1": 88.8, - "Co55": 63108.0, - "Co56": 6672931.0, - "Co57": 23478340.0, - "Co58": 6122304.0, - "Co58_m1": 32760.0, - "Co60": 166344200.0, - "Co60_m1": 628.02, - "Co61": 5940.0, - "Co62": 90.0, - "Co62_m1": 834.6, - "Co63": 27.4, - "Co64": 0.3, - "Co65": 1.16, - "Co66": 0.2, - "Co67": 0.425, - "Co68": 0.199, - "Co68_m1": 1.6, - "Co69": 0.22, - "Co70": 0.119, - "Co70_m1": 0.5, - "Co71": 0.079, - "Co72": 0.0599, - "Co73": 0.041, - "Co74": 0.03, - "Co75": 0.034, - "Ni48": 0.0021, - "Ni49": 0.0075, - "Ni50": 0.012, - "Ni51": 2e-07, - "Ni52": 0.038, - "Ni53": 0.045, - "Ni54": 0.104, - "Ni55": 0.2047, - "Ni56": 524880.0, - "Ni57": 128160.0, - "Ni59": 2398380000000.0, - "Ni63": 3193630000.0, - "Ni65": 9061.884, - "Ni66": 196560.0, - "Ni67": 21.0, - "Ni68": 29.0, - "Ni69": 11.4, - "Ni69_m1": 3.5, - "Ni70": 6.0, - "Ni71": 2.56, - "Ni72": 1.57, - "Ni73": 0.84, - "Ni74": 0.68, - "Ni75": 0.6, - "Ni76": 0.238, - "Ni77": 0.061, - "Ni78": 0.11, - "Cu52": 0.0069, - "Cu53": 3e-07, - "Cu54": 7.5e-08, - "Cu55": 0.04, - "Cu56": 0.094, - "Cu57": 0.1963, - "Cu58": 3.204, - "Cu59": 81.5, - "Cu60": 1422.0, - "Cu61": 11998.8, - "Cu62": 580.38, - "Cu64": 45723.6, - "Cu66": 307.2, - "Cu67": 222588.0, - "Cu68": 31.1, - "Cu68_m1": 225.0, - "Cu69": 171.0, - "Cu70": 44.5, - "Cu70_m1": 33.0, - "Cu70_m2": 6.6, - "Cu71": 19.5, - "Cu72": 6.63, - "Cu73": 4.2, - "Cu74": 1.75, - "Cu75": 1.224, - "Cu76": 0.653, - "Cu76_m1": 1.27, - "Cu77": 0.469, - "Cu78": 0.335, - "Cu79": 0.188, - "Cu80": 0.17, - "Cu81": 0.028, - "Zn54": 0.0037, - "Zn55": 0.02, - "Zn56": 5e-07, - "Zn57": 0.038, - "Zn58": 0.084, - "Zn59": 0.182, - "Zn60": 142.8, - "Zn61": 89.1, - "Zn61_m1": 0.43, - "Zn61_m2": 0.14, - "Zn62": 33336.0, - "Zn63": 2308.2, - "Zn65": 21075550.0, - "Zn69": 3384.0, - "Zn69_m1": 49536.0, - "Zn71": 147.0, - "Zn71_m1": 14256.0, - "Zn72": 167400.0, - "Zn73": 23.5, - "Zn73_m1": 5.8, - "Zn73_m2": 0.013, - "Zn74": 95.6, - "Zn75": 10.2, - "Zn76": 5.7, - "Zn77": 2.08, - "Zn77_m1": 1.05, - "Zn78": 1.47, - "Zn79": 0.995, - "Zn80": 0.54, - "Zn81": 0.32, - "Zn82": 0.052, - "Zn83": 0.043, - "Ga56": 0.0059, - "Ga57": 0.0123, - "Ga58": 0.0152, - "Ga59": 0.0418, - "Ga60": 0.07, - "Ga61": 0.168, - "Ga62": 0.11612, - "Ga63": 32.4, - "Ga64": 157.62, - "Ga65": 912.0, - "Ga66": 34164.0, - "Ga67": 281810.9, - "Ga68": 4062.6, - "Ga70": 1268.4, - "Ga72": 50760.0, - "Ga72_m1": 0.03968, - "Ga73": 17496.0, - "Ga74": 487.2, - "Ga74_m1": 9.5, - "Ga75": 126.0, - "Ga76": 32.6, - "Ga77": 13.2, - "Ga78": 5.09, - "Ga79": 2.847, - "Ga80": 1.676, - "Ga81": 1.217, - "Ga82": 0.599, - "Ga83": 0.3081, - "Ga84": 0.085, - "Ga85": 0.048, - "Ga86": 0.029, - "Ge58": 0.0152, - "Ge59": 0.0418, - "Ge60": 0.03, - "Ge61": 0.039, - "Ge62": 1.5e-07, - "Ge63": 0.142, - "Ge64": 63.7, - "Ge65": 30.9, - "Ge66": 8136.0, - "Ge67": 1134.0, - "Ge68": 23410080.0, - "Ge69": 140580.0, - "Ge71": 987552.0, - "Ge71_m1": 0.02041, - "Ge73_m1": 0.499, - "Ge75": 4966.8, - "Ge75_m1": 47.7, - "Ge77": 40680.0, - "Ge77_m1": 52.9, - "Ge78": 5280.0, - "Ge79": 18.98, - "Ge79_m1": 39.0, - "Ge80": 29.5, - "Ge81": 7.6, - "Ge81_m1": 7.6, - "Ge82": 4.55, - "Ge83": 1.85, - "Ge84": 0.954, - "Ge85": 0.535, - "Ge86": 0.095, - "Ge87": 0.14, - "Ge88": 0.066, - "Ge89": 0.039, - "As60": 0.0083, - "As61": 0.0166, - "As62": 0.0259, - "As63": 0.0921, - "As64": 0.036, - "As65": 0.128, - "As66": 0.09579, - "As67": 42.5, - "As68": 151.6, - "As69": 913.8, - "As70": 3156.0, - "As71": 235080.0, - "As72": 93600.0, - "As73": 6937920.0, - "As74": 1535328.0, - "As75_m1": 0.01762, - "As76": 94464.0, - "As77": 139788.0, - "As78": 5442.0, - "As79": 540.6, - "As80": 15.2, - "As81": 33.3, - "As82": 19.1, - "As82_m1": 13.6, - "As83": 13.4, - "As84": 4.2, - "As85": 2.021, - "As86": 0.945, - "As87": 0.56, - "As88": 0.112, - "As89": 0.059, - "As90": 0.043, - "As91": 0.044, - "As92": 0.027, - "Se65": 0.05, - "Se66": 0.033, - "Se67": 0.136, - "Se68": 35.5, - "Se69": 27.4, - "Se70": 2466.0, - "Se71": 284.4, - "Se72": 725760.0, - "Se73": 25740.0, - "Se73_m1": 2388.0, - "Se75": 10349860.0, - "Se77_m1": 17.36, - "Se79": 9309490000000.0, - "Se79_m1": 235.2, - "Se81": 1107.0, - "Se81_m1": 3436.8, - "Se83": 1338.0, - "Se83_m1": 70.1, - "Se84": 195.6, - "Se85": 31.7, - "Se86": 14.3, - "Se87": 5.5, - "Se88": 1.53, - "Se89": 0.41, - "Se90": 0.161, - "Se91": 0.27, - "Se92": 0.093, - "Se93": 0.062, - "Se94": 0.059, - "Br67": 0.0443, - "Br68": 1.2e-06, - "Br69": 2.4e-08, - "Br70": 0.0791, - "Br70_m1": 2.2, - "Br71": 21.4, - "Br72": 78.6, - "Br72_m1": 10.6, - "Br73": 204.0, - "Br74": 1524.0, - "Br74_m1": 2760.0, - "Br75": 5802.0, - "Br76": 58320.0, - "Br76_m1": 1.31, - "Br77": 205329.6, - "Br77_m1": 256.8, - "Br78": 387.0, - "Br79_m1": 4.86, - "Br80": 1060.8, - "Br80_m1": 15913.8, - "Br82": 127015.2, - "Br82_m1": 367.8, - "Br83": 8640.0, - "Br84": 1905.6, - "Br84_m1": 360.0, - "Br85": 174.0, - "Br86": 55.0, - "Br87": 55.65, - "Br88": 16.29, - "Br89": 4.4, - "Br90": 1.92, - "Br91": 0.541, - "Br92": 0.343, - "Br93": 0.102, - "Br94": 0.07, - "Br95": 0.066, - "Br96": 0.042, - "Br97": 0.04, - "Kr69": 0.032, - "Kr70": 0.052, - "Kr71": 0.1, - "Kr72": 17.1, - "Kr73": 27.3, - "Kr74": 690.0, - "Kr75": 257.4, - "Kr76": 53280.0, - "Kr77": 4464.0, - "Kr79": 126144.0, - "Kr79_m1": 50.0, - "Kr81": 7226690000000.0, - "Kr81_m1": 13.1, - "Kr83_m1": 6588.0, - "Kr85": 339433500.0, - "Kr85_m1": 16128.0, - "Kr87": 4578.0, - "Kr88": 10224.0, - "Kr89": 189.0, - "Kr90": 32.32, - "Kr91": 8.57, - "Kr92": 1.84, - "Kr93": 1.286, - "Kr94": 0.212, - "Kr95": 0.114, - "Kr96": 0.08, - "Kr97": 0.063, - "Kr98": 0.046, - "Kr99": 0.027, - "Kr100": 0.007, - "Rb71": 1e-09, - "Rb72": 1.2e-06, - "Rb73": 3e-08, - "Rb74": 0.064776, - "Rb75": 19.0, - "Rb76": 36.5, - "Rb77": 226.2, - "Rb78": 1059.6, - "Rb78_m1": 344.4, - "Rb79": 1374.0, - "Rb80": 34.0, - "Rb81": 16459.2, - "Rb81_m1": 1830.0, - "Rb82": 75.45, - "Rb82_m1": 23299.2, - "Rb83": 7447680.0, - "Rb84": 2835648.0, - "Rb84_m1": 1215.6, - "Rb86": 1609718.0, - "Rb86_m1": 61.02, - "Rb87": 1.51792e18, - "Rb88": 1066.38, - "Rb89": 909.0, - "Rb90": 158.0, - "Rb90_m1": 258.0, - "Rb91": 58.4, - "Rb92": 4.492, - "Rb93": 5.84, - "Rb94": 2.702, - "Rb95": 0.3777, - "Rb96": 0.203, - "Rb97": 0.1691, - "Rb98": 0.114, - "Rb98_m1": 0.096, - "Rb99": 0.054, - "Rb100": 0.051, - "Rb101": 0.032, - "Rb102": 0.037, - "Sr73": 0.025, - "Sr74": 1.2e-06, - "Sr75": 0.088, - "Sr76": 7.89, - "Sr77": 9.0, - "Sr78": 150.0, - "Sr79": 135.0, - "Sr80": 6378.0, - "Sr81": 1338.0, - "Sr82": 2190240.0, - "Sr83": 116676.0, - "Sr83_m1": 4.95, - "Sr85": 5602176.0, - "Sr85_m1": 4057.8, - "Sr87_m1": 10134.0, - "Sr89": 4365792.0, - "Sr90": 908543300.0, - "Sr91": 34668.0, - "Sr92": 9756.0, - "Sr93": 445.38, - "Sr94": 75.3, - "Sr95": 23.9, - "Sr96": 1.07, - "Sr97": 0.429, - "Sr98": 0.653, - "Sr99": 0.27, - "Sr100": 0.202, - "Sr101": 0.118, - "Sr102": 0.069, - "Sr103": 0.068, - "Sr104": 0.043, - "Sr105": 0.0556, - "Y76": 2e-07, - "Y77": 0.062, - "Y78": 0.05, - "Y78_m1": 5.7, - "Y79": 14.8, - "Y80": 30.1, - "Y80_m1": 4.8, - "Y81": 70.4, - "Y82": 8.3, - "Y83": 424.8, - "Y83_m1": 171.0, - "Y84": 2370.0, - "Y84_m1": 4.6, - "Y85": 9648.0, - "Y85_m1": 17496.0, - "Y86": 53064.0, - "Y86_m1": 2880.0, - "Y87": 287280.0, - "Y87_m1": 48132.0, - "Y88": 9212486.0, - "Y88_m1": 0.000301, - "Y88_m2": 0.01397, - "Y89_m1": 15.663, - "Y90": 230400.0, - "Y90_m1": 11484.0, - "Y91": 5055264.0, - "Y91_m1": 2982.6, - "Y92": 12744.0, - "Y93": 36648.0, - "Y93_m1": 0.82, - "Y94": 1122.0, - "Y95": 618.0, - "Y96": 5.34, - "Y96_m1": 9.6, - "Y97": 3.75, - "Y97_m1": 1.17, - "Y97_m2": 0.142, - "Y98": 0.548, - "Y98_m1": 2.0, - "Y99": 1.47, - "Y100": 0.735, - "Y100_m1": 0.94, - "Y101": 0.45, - "Y102": 0.36, - "Y102_m1": 0.298, - "Y103": 0.23, - "Y104": 0.18, - "Y105": 0.088, - "Y106": 0.066, - "Y107": 0.03, - "Y108": 0.048, - "Zr78": 2e-07, - "Zr79": 0.056, - "Zr80": 4.6, - "Zr81": 5.5, - "Zr82": 32.0, - "Zr83": 41.6, - "Zr84": 1554.0, - "Zr85": 471.6, - "Zr85_m1": 10.9, - "Zr86": 59400.0, - "Zr87": 6048.0, - "Zr87_m1": 14.0, - "Zr88": 7205760.0, - "Zr89": 282276.0, - "Zr89_m1": 249.66, - "Zr90_m1": 0.8092, - "Zr93": 48283100000000.0, - "Zr95": 5532365.0, - "Zr96": 6.31152e26, - "Zr97": 60296.4, - "Zr98": 30.7, - "Zr99": 2.1, - "Zr100": 7.1, - "Zr101": 2.3, - "Zr102": 2.9, - "Zr103": 1.3, - "Zr104": 1.2, - "Zr105": 0.6, - "Zr106": 0.27, - "Zr107": 0.15, - "Zr108": 0.08, - "Zr109": 0.117, - "Zr110": 0.098, - "Nb81": 0.8, - "Nb82": 0.05, - "Nb83": 4.1, - "Nb84": 9.8, - "Nb85": 20.9, - "Nb85_m1": 3.3, - "Nb86": 88.0, - "Nb87": 225.0, - "Nb87_m1": 156.0, - "Nb88": 873.0, - "Nb88_m1": 466.8, - "Nb89": 7308.0, - "Nb89_m1": 3960.0, - "Nb90": 52560.0, - "Nb90_m1": 18.81, - "Nb90_m2": 0.00619, - "Nb91": 21459200000.0, - "Nb91_m1": 5258304.0, - "Nb92": 1095050000000000.0, - "Nb92_m1": 876960.0, - "Nb93_m1": 509024100.0, - "Nb94": 640619000000.0, - "Nb94_m1": 375.78, - "Nb95": 3023222.0, - "Nb95_m1": 311904.0, - "Nb96": 84060.0, - "Nb97": 4326.0, - "Nb97_m1": 58.7, - "Nb98": 2.86, - "Nb98_m1": 3078.0, - "Nb99": 15.0, - "Nb99_m1": 150.0, - "Nb100": 1.5, - "Nb100_m1": 2.99, - "Nb101": 7.1, - "Nb102": 4.3, - "Nb102_m1": 1.3, - "Nb103": 1.5, - "Nb104": 4.9, - "Nb104_m1": 0.94, - "Nb105": 2.95, - "Nb106": 0.93, - "Nb107": 0.3, - "Nb108": 0.193, - "Nb109": 0.19, - "Nb110": 0.17, - "Nb111": 0.08, - "Nb112": 0.069, - "Nb113": 0.03, - "Mo83": 0.0195, - "Mo84": 3.8, - "Mo85": 3.2, - "Mo86": 19.6, - "Mo87": 14.02, - "Mo88": 480.0, - "Mo89": 126.6, - "Mo89_m1": 0.19, - "Mo90": 20412.0, - "Mo91": 929.4, - "Mo91_m1": 64.6, - "Mo93": 126230000000.0, - "Mo93_m1": 24660.0, - "Mo99": 237513.6, - "Mo100": 2.3037e26, - "Mo101": 876.6, - "Mo102": 678.0, - "Mo103": 67.5, - "Mo104": 60.0, - "Mo105": 35.6, - "Mo106": 8.73, - "Mo107": 3.5, - "Mo108": 1.09, - "Mo109": 0.53, - "Mo110": 0.3, - "Mo111": 0.2, - "Mo112": 0.287, - "Mo113": 0.1, - "Mo114": 0.08, - "Mo115": 0.092, - "Tc85": 0.5, - "Tc86": 0.054, - "Tc86_m1": 1.1e-06, - "Tc87": 2.2, - "Tc88": 5.8, - "Tc88_m1": 6.4, - "Tc89": 12.8, - "Tc89_m1": 12.9, - "Tc90": 8.7, - "Tc90_m1": 49.2, - "Tc91": 188.4, - "Tc91_m1": 198.0, - "Tc92": 255.0, - "Tc93": 9900.0, - "Tc93_m1": 2610.0, - "Tc94": 17580.0, - "Tc94_m1": 3120.0, - "Tc95": 72000.0, - "Tc95_m1": 5270400.0, - "Tc96": 369792.0, - "Tc96_m1": 3090.0, - "Tc97": 132857000000000.0, - "Tc97_m1": 7862400.0, - "Tc98": 132542000000000.0, - "Tc99": 6661810000000.0, - "Tc99_m1": 21624.12, - "Tc100": 15.46, - "Tc101": 852.0, - "Tc102": 5.28, - "Tc102_m1": 261.0, - "Tc103": 54.2, - "Tc104": 1098.0, - "Tc105": 456.0, - "Tc106": 35.6, - "Tc107": 21.2, - "Tc108": 5.17, - "Tc109": 0.86, - "Tc110": 0.92, - "Tc111": 0.29, - "Tc112": 0.28, - "Tc113": 0.16, - "Tc114": 0.15, - "Tc115": 0.073, - "Tc116": 0.09, - "Tc117": 0.04, - "Tc118": 0.066, - "Ru87": 1.5e-06, - "Ru88": 1.25, - "Ru89": 1.5, - "Ru90": 11.7, - "Ru91": 7.9, - "Ru91_m1": 7.6, - "Ru92": 219.0, - "Ru93": 59.7, - "Ru93_m1": 10.8, - "Ru94": 3108.0, - "Ru95": 5914.8, - "Ru97": 244512.0, - "Ru103": 3390941.0, - "Ru103_m1": 0.00169, - "Ru105": 15984.0, - "Ru106": 32123520.0, - "Ru107": 225.0, - "Ru108": 273.0, - "Ru109": 34.5, - "Ru110": 11.6, - "Ru111": 2.12, - "Ru112": 1.75, - "Ru113": 0.8, - "Ru113_m1": 0.51, - "Ru114": 0.52, - "Ru115": 0.74, - "Ru116": 0.204, - "Ru117": 0.142, - "Ru118": 0.123, - "Ru119": 0.162, - "Ru120": 0.149, - "Rh89": 1.5e-06, - "Rh90": 0.0145, - "Rh90_m1": 1.05, - "Rh91": 1.47, - "Rh92": 4.66, - "Rh93": 11.9, - "Rh94": 70.6, - "Rh94_m1": 25.8, - "Rh95": 301.2, - "Rh95_m1": 117.6, - "Rh96": 594.0, - "Rh96_m1": 90.6, - "Rh97": 1842.0, - "Rh97_m1": 2772.0, - "Rh98": 523.2, - "Rh98_m1": 216.0, - "Rh99": 1391040.0, - "Rh99_m1": 16920.0, - "Rh100": 74880.0, - "Rh100_m1": 276.0, - "Rh101": 104140100.0, - "Rh101_m1": 374976.0, - "Rh102": 17910720.0, - "Rh102_m1": 118088500.0, - "Rh103_m1": 3366.84, - "Rh104": 42.3, - "Rh104_m1": 260.4, - "Rh105": 127296.0, - "Rh105_m1": 40.0, - "Rh106": 30.07, - "Rh106_m1": 7860.0, - "Rh107": 1302.0, - "Rh108": 16.8, - "Rh108_m1": 360.0, - "Rh109": 80.0, - "Rh110": 3.2, - "Rh110_m1": 28.5, - "Rh111": 11.0, - "Rh112": 2.1, - "Rh112_m1": 6.73, - "Rh113": 2.8, - "Rh114": 1.85, - "Rh115": 0.99, - "Rh116": 0.68, - "Rh116_m1": 0.57, - "Rh117": 0.44, - "Rh118": 0.266, - "Rh119": 0.171, - "Rh120": 0.136, - "Rh121": 0.151, - "Rh122": 0.108, - "Rh123": 0.0489, - "Pd91": 1e-06, - "Pd92": 0.8, - "Pd93": 1.3, - "Pd94": 9.0, - "Pd95": 10.0, - "Pd95_m1": 13.3, - "Pd96": 122.0, - "Pd97": 186.0, - "Pd98": 1062.0, - "Pd99": 1284.0, - "Pd100": 313632.0, - "Pd101": 30492.0, - "Pd103": 1468022.0, - "Pd107": 205124000000000.0, - "Pd107_m1": 21.3, - "Pd109": 49324.32, - "Pd109_m1": 281.4, - "Pd111": 1404.0, - "Pd111_m1": 19800.0, - "Pd112": 75708.0, - "Pd113": 93.0, - "Pd113_m1": 0.3, - "Pd114": 145.2, - "Pd115": 25.0, - "Pd115_m1": 50.0, - "Pd116": 11.8, - "Pd117": 4.3, - "Pd117_m1": 0.0191, - "Pd118": 1.9, - "Pd119": 0.92, - "Pd120": 0.5, - "Pd121": 0.285, - "Pd122": 0.175, - "Pd123": 0.244, - "Pd124": 0.038, - "Pd125": 0.3987, - "Pd126": 0.2499, - "Ag93": 1.5e-06, - "Ag94": 0.035, - "Ag94_m1": 0.55, - "Ag94_m2": 0.4, - "Ag95": 2.0, - "Ag95_m1": 0.5, - "Ag95_m2": 0.016, - "Ag95_m3": 0.04, - "Ag96": 4.4, - "Ag96_m1": 6.9, - "Ag97": 25.5, - "Ag98": 47.5, - "Ag99": 124.0, - "Ag99_m1": 10.5, - "Ag100": 120.6, - "Ag100_m1": 134.4, - "Ag101": 666.0, - "Ag101_m1": 3.1, - "Ag102": 774.0, - "Ag102_m1": 462.0, - "Ag103": 3942.0, - "Ag103_m1": 5.7, - "Ag104": 4152.0, - "Ag104_m1": 2010.0, - "Ag105": 3567456.0, - "Ag105_m1": 433.8, - "Ag106": 1437.6, - "Ag106_m1": 715392.0, - "Ag107_m1": 44.3, - "Ag108": 142.92, - "Ag108_m1": 13822200000.0, - "Ag109_m1": 39.6, - "Ag110": 24.6, - "Ag110_m1": 21579260.0, - "Ag111": 643680.0, - "Ag111_m1": 64.8, - "Ag112": 11268.0, - "Ag113": 19332.0, - "Ag113_m1": 68.7, - "Ag114": 4.6, - "Ag114_m1": 0.0015, - "Ag115": 1200.0, - "Ag115_m1": 18.0, - "Ag116": 237.0, - "Ag116_m1": 20.0, - "Ag116_m2": 9.3, - "Ag117": 72.8, - "Ag117_m1": 5.34, - "Ag118": 3.76, - "Ag118_m1": 2.0, - "Ag119": 2.1, - "Ag119_m1": 6.0, - "Ag120": 1.23, - "Ag120_m1": 0.32, - "Ag121": 0.78, - "Ag122": 0.529, - "Ag122_m1": 0.2, - "Ag123": 0.3, - "Ag124": 0.172, - "Ag125": 0.166, - "Ag126": 0.107, - "Ag127": 0.109, - "Ag128": 0.058, - "Ag129": 0.046, - "Ag130": 0.05, - "Cd95": 0.005, - "Cd96": 1.0, - "Cd97": 2.8, - "Cd98": 9.2, - "Cd99": 16.0, - "Cd100": 49.1, - "Cd101": 81.6, - "Cd102": 330.0, - "Cd103": 438.0, - "Cd104": 3462.0, - "Cd105": 3330.0, - "Cd107": 23400.0, - "Cd109": 39864960.0, - "Cd111_m1": 2912.4, - "Cd113": 2.53723e23, - "Cd113_m1": 444962200.0, - "Cd115": 192456.0, - "Cd115_m1": 3849984.0, - "Cd116": 9.78286e26, - "Cd117": 8964.0, - "Cd117_m1": 12096.0, - "Cd118": 3018.0, - "Cd119": 161.4, - "Cd119_m1": 132.0, - "Cd120": 50.8, - "Cd121": 13.5, - "Cd121_m1": 8.3, - "Cd122": 5.24, - "Cd123": 2.1, - "Cd123_m1": 1.82, - "Cd124": 1.25, - "Cd125": 0.68, - "Cd125_m1": 0.48, - "Cd126": 0.515, - "Cd127": 0.37, - "Cd128": 0.28, - "Cd129": 0.27, - "Cd130": 0.162, - "Cd131": 0.068, - "Cd132": 0.097, - "In97": 0.005, - "In98": 0.0425, - "In98_m1": 1.6, - "In99": 3.05, - "In100": 5.9, - "In101": 15.1, - "In102": 23.3, - "In103": 65.0, - "In103_m1": 34.0, - "In104": 108.0, - "In104_m1": 15.7, - "In105": 304.2, - "In105_m1": 48.0, - "In106": 372.0, - "In106_m1": 312.0, - "In107": 1944.0, - "In107_m1": 50.4, - "In108": 3480.0, - "In108_m1": 2376.0, - "In109": 15001.2, - "In109_m1": 80.4, - "In109_m2": 0.209, - "In110": 17640.0, - "In110_m1": 4146.0, - "In111": 242326.1, - "In111_m1": 462.0, - "In112": 898.2, - "In112_m1": 1233.6, - "In113_m1": 5968.56, - "In114": 71.9, - "In114_m1": 4277664.0, - "In114_m2": 0.0431, - "In115": 1.39169e22, - "In115_m1": 16149.6, - "In116": 14.1, - "In116_m1": 3257.4, - "In116_m2": 2.18, - "In117": 2592.0, - "In117_m1": 6972.0, - "In118": 5.0, - "In118_m1": 267.0, - "In118_m2": 8.5, - "In119": 144.0, - "In119_m1": 1080.0, - "In120": 3.08, - "In120_m1": 46.2, - "In120_m2": 47.3, - "In121": 23.1, - "In121_m1": 232.8, - "In122": 1.5, - "In122_m1": 10.3, - "In122_m2": 10.8, - "In123": 6.17, - "In123_m1": 47.4, - "In124": 3.12, - "In124_m1": 3.7, - "In125": 2.36, - "In125_m1": 12.2, - "In126": 1.53, - "In126_m1": 1.64, - "In127": 1.09, - "In127_m1": 3.67, - "In128": 0.84, - "In128_m1": 0.72, - "In129": 0.61, - "In129_m1": 1.23, - "In130": 0.29, - "In130_m1": 0.54, - "In130_m2": 0.54, - "In131": 0.28, - "In131_m1": 0.35, - "In131_m2": 0.32, - "In132": 0.207, - "In133": 0.165, - "In133_m1": 0.18, - "In134": 0.14, - "In135": 0.092, - "Sn99": 0.005, - "Sn100": 0.86, - "Sn101": 1.7, - "Sn102": 4.5, - "Sn103": 7.0, - "Sn104": 20.8, - "Sn105": 34.0, - "Sn106": 115.0, - "Sn107": 174.0, - "Sn108": 618.0, - "Sn109": 1080.0, - "Sn110": 14796.0, - "Sn111": 2118.0, - "Sn113": 9943776.0, - "Sn113_m1": 1284.0, - "Sn117_m1": 1175040.0, - "Sn119_m1": 25315200.0, - "Sn121": 97308.0, - "Sn121_m1": 1385380000.0, - "Sn123": 11162880.0, - "Sn123_m1": 2403.6, - "Sn125": 832896.0, - "Sn125_m1": 571.2, - "Sn126": 7258250000000.0, - "Sn127": 7560.0, - "Sn127_m1": 247.8, - "Sn128": 3544.2, - "Sn128_m1": 6.5, - "Sn129": 133.8, - "Sn129_m1": 414.0, - "Sn130": 223.2, - "Sn130_m1": 102.0, - "Sn131": 56.0, - "Sn131_m1": 58.4, - "Sn132": 39.7, - "Sn133": 1.46, - "Sn134": 1.05, - "Sn135": 0.53, - "Sn136": 0.25, - "Sn137": 0.19, - "Sb103": 1.5e-06, - "Sb104": 0.46, - "Sb105": 1.22, - "Sb106": 0.6, - "Sb107": 4.0, - "Sb108": 7.4, - "Sb109": 17.0, - "Sb110": 23.0, - "Sb111": 75.0, - "Sb112": 51.4, - "Sb113": 400.2, - "Sb114": 209.4, - "Sb115": 1926.0, - "Sb116": 948.0, - "Sb116_m1": 3618.0, - "Sb117": 10080.0, - "Sb118": 216.0, - "Sb118_m1": 18000.0, - "Sb119": 137484.0, - "Sb119_m1": 0.85, - "Sb120": 953.4, - "Sb120_m1": 497664.0, - "Sb122": 235336.3, - "Sb122_m1": 251.46, - "Sb124": 5201280.0, - "Sb124_m1": 93.0, - "Sb124_m2": 1212.0, - "Sb125": 87053530.0, - "Sb126": 1067040.0, - "Sb126_m1": 1149.0, - "Sb126_m2": 11.0, - "Sb127": 332640.0, - "Sb128": 32436.0, - "Sb128_m1": 624.0, - "Sb129": 15840.0, - "Sb129_m1": 1062.0, - "Sb130": 2370.0, - "Sb130_m1": 378.0, - "Sb131": 1381.8, - "Sb132": 167.4, - "Sb132_m1": 246.0, - "Sb133": 150.0, - "Sb134": 0.78, - "Sb134_m1": 10.07, - "Sb135": 1.679, - "Sb136": 0.923, - "Sb137": 0.45, - "Sb138": 0.168, - "Sb139": 0.127, - "Te105": 6.2e-07, - "Te106": 6e-05, - "Te107": 0.0031, - "Te108": 2.1, - "Te109": 4.6, - "Te110": 18.6, - "Te111": 19.3, - "Te112": 120.0, - "Te113": 102.0, - "Te114": 912.0, - "Te115": 348.0, - "Te115_m1": 402.0, - "Te116": 8964.0, - "Te117": 3720.0, - "Te117_m1": 0.103, - "Te118": 518400.0, - "Te119": 57780.0, - "Te119_m1": 406080.0, - "Te121": 1656288.0, - "Te121_m1": 14186880.0, - "Te123_m1": 10298880.0, - "Te125_m1": 4959360.0, - "Te127": 33660.0, - "Te127_m1": 9417600.0, - "Te128": 2.77707e26, - "Te129": 4176.0, - "Te129_m1": 2903040.0, - "Te131": 1500.0, - "Te131_m1": 119700.0, - "Te132": 276825.6, - "Te133": 750.0, - "Te133_m1": 3324.0, - "Te134": 2508.0, - "Te135": 19.0, - "Te136": 17.5, - "Te137": 2.49, - "Te138": 1.4, - "Te139": 0.347, - "Te140": 0.304, - "Te141": 0.213, - "Te142": 0.2, - "I108": 0.036, - "I109": 0.000103, - "I110": 0.65, - "I111": 2.5, - "I112": 3.42, - "I113": 6.6, - "I114": 2.1, - "I114_m1": 6.2, - "I115": 78.0, - "I116": 2.91, - "I117": 133.2, - "I118": 822.0, - "I118_m1": 510.0, - "I119": 1146.0, - "I120": 4896.0, - "I120_m1": 3180.0, - "I121": 7632.0, - "I122": 217.8, - "I123": 47604.24, - "I124": 360806.4, - "I125": 5132160.0, - "I126": 1117152.0, - "I128": 1499.4, - "I129": 495454000000000.0, - "I130": 44496.0, - "I130_m1": 530.4, - "I131": 693377.3, - "I132": 8262.0, - "I132_m1": 4993.2, - "I133": 74880.0, - "I133_m1": 9.0, - "I134": 3150.0, - "I134_m1": 211.2, - "I135": 23652.0, - "I136": 83.4, - "I136_m1": 46.9, - "I137": 24.5, - "I138": 6.23, - "I139": 2.28, - "I140": 0.86, - "I141": 0.43, - "I142": 0.222, - "I143": 0.296, - "I144": 0.194, - "I145": 0.127, - "Xe110": 0.093, - "Xe111": 0.81, - "Xe112": 2.7, - "Xe113": 2.74, - "Xe114": 10.0, - "Xe115": 18.0, - "Xe116": 59.0, - "Xe117": 61.0, - "Xe118": 228.0, - "Xe119": 348.0, - "Xe120": 2400.0, - "Xe121": 2406.0, - "Xe122": 72360.0, - "Xe123": 7488.0, - "Xe125": 60840.0, - "Xe125_m1": 56.9, - "Xe127": 3144960.0, - "Xe127_m1": 69.2, - "Xe129_m1": 767232.0, - "Xe131_m1": 1022976.0, - "Xe132_m1": 0.00839, - "Xe133": 452995.2, - "Xe133_m1": 189216.0, - "Xe134_m1": 0.29, - "Xe135": 32904.0, - "Xe135_m1": 917.4, - "Xe137": 229.08, - "Xe138": 844.8, - "Xe139": 39.68, - "Xe140": 13.6, - "Xe141": 1.73, - "Xe142": 1.23, - "Xe143": 0.3, - "Xe144": 1.15, - "Xe145": 0.188, - "Xe146": 0.369, - "Xe147": 0.1, - "Cs112": 0.0005, - "Cs113": 1.67e-05, - "Cs114": 0.57, - "Cs115": 1.4, - "Cs116": 0.7, - "Cs116_m1": 3.85, - "Cs117": 8.4, - "Cs117_m1": 6.5, - "Cs118": 14.0, - "Cs118_m1": 17.0, - "Cs119": 43.0, - "Cs119_m1": 30.4, - "Cs120": 61.3, - "Cs120_m1": 57.0, - "Cs121": 155.0, - "Cs121_m1": 122.0, - "Cs122": 21.18, - "Cs122_m1": 0.36, - "Cs122_m2": 222.0, - "Cs123": 352.8, - "Cs123_m1": 1.64, - "Cs124": 30.8, - "Cs124_m1": 6.3, - "Cs125": 2802.0, - "Cs125_m1": 0.0009, - "Cs126": 98.4, - "Cs127": 22500.0, - "Cs128": 217.2, - "Cs129": 115416.0, - "Cs130": 1752.6, - "Cs130_m1": 207.6, - "Cs131": 837129.6, - "Cs132": 559872.0, - "Cs134": 65172760.0, - "Cs134_m1": 10483.2, - "Cs135": 72582500000000.0, - "Cs135_m1": 3180.0, - "Cs136": 1137024.0, - "Cs136_m1": 19.0, - "Cs137": 949252600.0, - "Cs138": 2004.6, - "Cs138_m1": 174.6, - "Cs139": 556.2, - "Cs140": 63.7, - "Cs141": 24.84, - "Cs142": 1.684, - "Cs143": 1.791, - "Cs144": 0.994, - "Cs144_m1": 1.0, - "Cs145": 0.587, - "Cs146": 0.321, - "Cs147": 0.23, - "Cs148": 0.146, - "Cs149": 0.05, - "Cs150": 0.05, - "Cs151": 0.05, - "Ba114": 0.43, - "Ba115": 0.45, - "Ba116": 1.3, - "Ba117": 1.75, - "Ba118": 5.5, - "Ba119": 5.4, - "Ba120": 24.0, - "Ba121": 29.7, - "Ba122": 117.0, - "Ba123": 162.0, - "Ba124": 660.0, - "Ba125": 210.0, - "Ba126": 6000.0, - "Ba127": 762.0, - "Ba127_m1": 1.9, - "Ba128": 209952.0, - "Ba129": 8028.0, - "Ba129_m1": 7776.0, - "Ba130_m1": 0.0094, - "Ba131": 993600.0, - "Ba131_m1": 876.0, - "Ba133": 331862400.0, - "Ba133_m1": 140040.0, - "Ba135_m1": 103320.0, - "Ba136_m1": 0.3084, - "Ba137_m1": 153.12, - "Ba139": 4983.6, - "Ba140": 1101833.0, - "Ba141": 1096.2, - "Ba142": 636.0, - "Ba143": 14.5, - "Ba144": 11.5, - "Ba145": 4.31, - "Ba146": 2.22, - "Ba147": 0.894, - "Ba148": 0.612, - "Ba149": 0.344, - "Ba150": 0.3, - "Ba151": 0.259, - "Ba152": 0.228, - "Ba153": 0.158, - "La117": 0.0235, - "La117_m1": 0.01, - "La118": 1.0, - "La119": 2.0, - "La120": 2.8, - "La121": 5.3, - "La122": 8.6, - "La123": 17.0, - "La124": 29.21, - "La124_m1": 21.0, - "La125": 64.8, - "La125_m1": 0.4, - "La126": 54.0, - "La126_m1": 50.0, - "La127": 306.0, - "La127_m1": 222.0, - "La128": 310.8, - "La128_m1": 60.0, - "La129": 696.0, - "La129_m1": 0.56, - "La130": 522.0, - "La131": 3540.0, - "La132": 17280.0, - "La132_m1": 1458.0, - "La133": 14083.2, - "La134": 387.0, - "La135": 70200.0, - "La136": 592.2, - "La136_m1": 0.114, - "La137": 1893460000000.0, - "La138": 3.21888e18, - "La140": 145026.7, - "La141": 14112.0, - "La142": 5466.0, - "La143": 852.0, - "La144": 40.8, - "La145": 24.8, - "La146": 6.27, - "La146_m1": 10.0, - "La147": 4.06, - "La148": 1.26, - "La149": 1.05, - "La150": 0.86, - "La151": 0.778, - "La152": 0.451, - "La153": 0.342, - "La154": 0.228, - "La155": 0.184, - "Ce119": 0.2, - "Ce120": 0.25, - "Ce121": 1.1, - "Ce122": 2.73, - "Ce123": 3.8, - "Ce124": 6.0, - "Ce125": 10.2, - "Ce126": 51.0, - "Ce127": 31.0, - "Ce127_m1": 28.6, - "Ce128": 235.8, - "Ce129": 210.0, - "Ce130": 1374.0, - "Ce131": 618.0, - "Ce131_m1": 324.0, - "Ce132": 12636.0, - "Ce132_m1": 0.0094, - "Ce133": 5820.0, - "Ce133_m1": 17640.0, - "Ce134": 273024.0, - "Ce135": 63720.0, - "Ce135_m1": 20.0, - "Ce137": 32400.0, - "Ce137_m1": 123840.0, - "Ce138_m1": 0.00865, - "Ce139": 11892180.0, - "Ce139_m1": 54.8, - "Ce141": 2808691.0, - "Ce143": 118940.4, - "Ce144": 24616220.0, - "Ce145": 180.6, - "Ce146": 811.2, - "Ce147": 56.4, - "Ce148": 56.0, - "Ce149": 5.3, - "Ce150": 4.0, - "Ce151": 1.76, - "Ce152": 1.4, - "Ce153": 0.979, - "Ce154": 0.775, - "Ce155": 0.471, - "Ce156": 0.369, - "Ce157": 0.2428, - "Pr121": 1.4, - "Pr122": 0.5, - "Pr123": 0.8, - "Pr124": 1.2, - "Pr125": 3.3, - "Pr126": 3.14, - "Pr127": 4.2, - "Pr128": 2.85, - "Pr129": 32.0, - "Pr130": 40.0, - "Pr131": 90.6, - "Pr131_m1": 5.73, - "Pr132": 96.0, - "Pr133": 390.0, - "Pr134": 1020.0, - "Pr134_m1": 660.0, - "Pr135": 1440.0, - "Pr136": 786.0, - "Pr137": 4608.0, - "Pr138": 87.0, - "Pr138_m1": 7632.0, - "Pr139": 15876.0, - "Pr140": 203.4, - "Pr142": 68832.0, - "Pr142_m1": 876.0, - "Pr143": 1172448.0, - "Pr144": 1036.8, - "Pr144_m1": 432.0, - "Pr145": 21542.4, - "Pr146": 1449.0, - "Pr147": 804.0, - "Pr148": 137.4, - "Pr148_m1": 120.6, - "Pr149": 135.6, - "Pr150": 6.19, - "Pr151": 18.9, - "Pr152": 3.63, - "Pr153": 4.28, - "Pr154": 2.3, - "Pr155": 0.852, - "Pr156": 0.733, - "Pr157": 0.598, - "Pr158": 0.1342, - "Pr159": 0.1055, - "Nd124": 0.5, - "Nd125": 0.6, - "Nd126": 2e-07, - "Nd127": 1.8, - "Nd128": 5.0, - "Nd129": 4.9, - "Nd130": 21.0, - "Nd131": 26.0, - "Nd132": 94.0, - "Nd133": 70.0, - "Nd133_m1": 70.0, - "Nd134": 510.0, - "Nd135": 744.0, - "Nd135_m1": 330.0, - "Nd136": 3039.0, - "Nd137": 2310.0, - "Nd137_m1": 1.6, - "Nd138": 18144.0, - "Nd139": 1782.0, - "Nd139_m1": 19800.0, - "Nd140": 291168.0, - "Nd141": 8964.0, - "Nd141_m1": 62.0, - "Nd144": 7.22669e22, - "Nd147": 948672.0, - "Nd149": 6220.8, - "Nd150": 2.49305e26, - "Nd151": 746.4, - "Nd152": 684.0, - "Nd153": 31.6, - "Nd154": 25.9, - "Nd155": 8.9, - "Nd156": 5.49, - "Nd157": 1.906, - "Nd158": 1.331, - "Nd159": 0.773, - "Nd160": 0.5883, - "Nd161": 0.4884, - "Pm126": 0.5, - "Pm127": 1.0, - "Pm128": 1.0, - "Pm129": 2.4, - "Pm130": 2.6, - "Pm131": 6.3, - "Pm132": 6.2, - "Pm133": 15.0, - "Pm133_m1": 8.8, - "Pm134": 5.0, - "Pm134_m1": 22.0, - "Pm135": 49.0, - "Pm135_m1": 45.0, - "Pm136": 47.0, - "Pm136_m1": 107.0, - "Pm137": 144.0, - "Pm138": 10.0, - "Pm138_m1": 194.4, - "Pm139": 249.0, - "Pm139_m1": 0.18, - "Pm140": 357.0, - "Pm140_m1": 357.0, - "Pm141": 1254.0, - "Pm142": 40.5, - "Pm142_m1": 0.002, - "Pm143": 22896000.0, - "Pm144": 31363200.0, - "Pm145": 558569500.0, - "Pm146": 174513500.0, - "Pm147": 82788210.0, - "Pm148": 463795.2, - "Pm148_m1": 3567456.0, - "Pm149": 191088.0, - "Pm150": 9648.0, - "Pm151": 102240.0, - "Pm152": 247.2, - "Pm152_m1": 451.2, - "Pm152_m2": 828.0, - "Pm153": 315.0, - "Pm154": 103.8, - "Pm154_m1": 160.8, - "Pm155": 41.5, - "Pm156": 26.7, - "Pm157": 10.56, - "Pm158": 4.8, - "Pm159": 1.47, - "Pm160": 1.561, - "Pm161": 1.065, - "Pm162": 0.2679, - "Pm163": 0.2, - "Sm128": 0.5, - "Sm129": 0.55, - "Sm130": 1.0, - "Sm131": 1.2, - "Sm132": 4.0, - "Sm133": 3.7, - "Sm134": 9.5, - "Sm135": 10.3, - "Sm136": 47.0, - "Sm137": 45.0, - "Sm138": 186.0, - "Sm139": 154.2, - "Sm139_m1": 10.7, - "Sm140": 889.2, - "Sm141": 612.0, - "Sm141_m1": 1356.0, - "Sm142": 4349.4, - "Sm143": 525.0, - "Sm143_m1": 66.0, - "Sm143_m2": 0.03, - "Sm145": 29376000.0, - "Sm146": 3250430000000000.0, - "Sm147": 3.34511e18, - "Sm148": 2.20903e23, - "Sm151": 2840184000.0, - "Sm153": 167400.0, - "Sm153_m1": 0.0106, - "Sm155": 1338.0, - "Sm156": 33840.0, - "Sm157": 482.0, - "Sm158": 318.0, - "Sm159": 11.37, - "Sm160": 9.6, - "Sm161": 4.8, - "Sm162": 2.4, - "Sm163": 1.748, - "Sm164": 1.226, - "Sm165": 0.764, - "Eu130": 0.001, - "Eu131": 0.0178, - "Eu132": 0.1, - "Eu133": 1.0, - "Eu134": 0.5, - "Eu135": 1.5, - "Eu136": 3.8, - "Eu136_m1": 3.3, - "Eu136_m2": 3.8, - "Eu137": 11.0, - "Eu138": 12.1, - "Eu139": 17.9, - "Eu140": 1.51, - "Eu140_m1": 0.125, - "Eu141": 40.7, - "Eu141_m1": 2.7, - "Eu142": 2.34, - "Eu142_m1": 73.38, - "Eu143": 155.4, - "Eu144": 10.2, - "Eu145": 512352.0, - "Eu146": 396576.0, - "Eu147": 2082240.0, - "Eu148": 4708800.0, - "Eu149": 8043840.0, - "Eu150": 1164480000.0, - "Eu150_m1": 46080.0, - "Eu152": 427195200.0, - "Eu152_m1": 33521.76, - "Eu152_m2": 5760.0, - "Eu154": 271426900.0, - "Eu154_m1": 2760.0, - "Eu155": 149993300.0, - "Eu156": 1312416.0, - "Eu157": 54648.0, - "Eu158": 2754.0, - "Eu159": 1086.0, - "Eu160": 38.0, - "Eu161": 26.0, - "Eu162": 10.6, - "Eu163": 7.7, - "Eu164": 2.844, - "Eu165": 2.3, - "Eu166": 0.4, - "Eu167": 0.2, - "Gd134": 0.4, - "Gd135": 1.1, - "Gd136": 2e-05, - "Gd137": 2.2, - "Gd138": 4.7, - "Gd139": 5.8, - "Gd139_m1": 4.8, - "Gd140": 15.8, - "Gd141": 14.0, - "Gd141_m1": 24.5, - "Gd142": 70.2, - "Gd143": 39.0, - "Gd143_m1": 110.0, - "Gd144": 268.2, - "Gd145": 1380.0, - "Gd145_m1": 85.0, - "Gd146": 4170528.0, - "Gd147": 137016.0, - "Gd148": 2354197000.0, - "Gd149": 801792.0, - "Gd150": 56488100000000.0, - "Gd151": 10713600.0, - "Gd152": 3.40822e21, - "Gd153": 20770560.0, - "Gd155_m1": 0.03197, - "Gd159": 66524.4, - "Gd161": 219.6, - "Gd162": 504.0, - "Gd163": 68.0, - "Gd164": 45.0, - "Gd165": 10.3, - "Gd166": 4.8, - "Gd167": 3.0, - "Gd168": 0.3, - "Gd169": 1.0, - "Tb135": 0.995, - "Tb136": 0.2, - "Tb137": 0.6, - "Tb138": 2e-07, - "Tb139": 1.6, - "Tb140": 2.4, - "Tb141": 3.5, - "Tb141_m1": 7.9, - "Tb142": 0.597, - "Tb142_m1": 0.303, - "Tb143": 12.0, - "Tb143_m1": 21.0, - "Tb144": 1.0, - "Tb144_m1": 4.25, - "Tb145": 30.9, - "Tb145_m1": 30.9, - "Tb146": 8.0, - "Tb146_m1": 23.0, - "Tb146_m2": 0.00118, - "Tb147": 5904.0, - "Tb147_m1": 109.8, - "Tb148": 3600.0, - "Tb148_m1": 132.0, - "Tb149": 14824.8, - "Tb149_m1": 249.6, - "Tb150": 12528.0, - "Tb150_m1": 348.0, - "Tb151": 63392.4, - "Tb151_m1": 25.0, - "Tb152": 63000.0, - "Tb152_m1": 252.0, - "Tb153": 202176.0, - "Tb154": 77400.0, - "Tb154_m1": 33840.0, - "Tb154_m2": 81720.0, - "Tb155": 459648.0, - "Tb156": 462240.0, - "Tb156_m1": 87840.0, - "Tb156_m2": 19080.0, - "Tb157": 2240590000.0, - "Tb158": 5680368000.0, - "Tb158_m1": 10.7, - "Tb160": 6246720.0, - "Tb161": 596678.4, - "Tb162": 456.0, - "Tb163": 1170.0, - "Tb164": 180.0, - "Tb165": 126.6, - "Tb166": 25.1, - "Tb167": 19.4, - "Tb168": 8.2, - "Tb169": 2.0, - "Tb170": 3.0, - "Tb171": 0.5, - "Dy138": 0.2, - "Dy139": 0.6, - "Dy140": 0.84, - "Dy141": 0.9, - "Dy142": 2.3, - "Dy143": 3.2, - "Dy143_m1": 3.0, - "Dy144": 9.1, - "Dy145": 6.0, - "Dy145_m1": 14.1, - "Dy146": 29.0, - "Dy146_m1": 0.15, - "Dy147": 40.0, - "Dy147_m1": 55.7, - "Dy148": 198.0, - "Dy149": 252.0, - "Dy149_m1": 0.49, - "Dy150": 430.2, - "Dy151": 1074.0, - "Dy152": 8568.0, - "Dy153": 23040.0, - "Dy154": 94672800000000.0, - "Dy155": 35640.0, - "Dy157": 29304.0, - "Dy157_m1": 0.0216, - "Dy159": 12476160.0, - "Dy165": 8402.4, - "Dy165_m1": 75.42, - "Dy166": 293760.0, - "Dy167": 372.0, - "Dy168": 522.0, - "Dy169": 39.0, - "Dy170": 30.0, - "Dy171": 6.0, - "Dy172": 3.0, - "Dy173": 2.0, - "Ho140": 0.006, - "Ho141": 0.0041, - "Ho142": 0.4, - "Ho143": 2e-07, - "Ho144": 0.7, - "Ho145": 2.4, - "Ho146": 3.6, - "Ho147": 5.8, - "Ho148": 2.2, - "Ho148_m1": 9.59, - "Ho148_m2": 0.00236, - "Ho149": 21.1, - "Ho149_m1": 56.0, - "Ho150": 72.0, - "Ho150_m1": 23.3, - "Ho151": 35.2, - "Ho151_m1": 47.2, - "Ho152": 161.8, - "Ho152_m1": 50.0, - "Ho153": 120.6, - "Ho153_m1": 558.0, - "Ho154": 705.6, - "Ho154_m1": 186.0, - "Ho155": 2880.0, - "Ho155_m1": 0.00088, - "Ho156": 3360.0, - "Ho156_m1": 9.5, - "Ho156_m2": 468.0, - "Ho157": 756.0, - "Ho158": 678.0, - "Ho158_m1": 1680.0, - "Ho158_m2": 1278.0, - "Ho159": 1983.0, - "Ho159_m1": 8.3, - "Ho160": 1536.0, - "Ho160_m1": 18072.0, - "Ho160_m2": 3.0, - "Ho161": 8928.0, - "Ho161_m1": 6.76, - "Ho162": 900.0, - "Ho162_m1": 4020.0, - "Ho163": 144218000000.0, - "Ho163_m1": 1.09, - "Ho164": 1740.0, - "Ho164_m1": 2250.0, - "Ho166": 96480.0, - "Ho166_m1": 37869100000.0, - "Ho167": 11160.0, - "Ho168": 179.4, - "Ho168_m1": 132.0, - "Ho169": 283.2, - "Ho170": 165.6, - "Ho170_m1": 43.0, - "Ho171": 53.0, - "Ho172": 25.0, - "Ho173": 10.0, - "Ho174": 8.0, - "Ho175": 5.0, - "Er143": 0.2, - "Er144": 2e-07, - "Er146": 1.7, - "Er147": 2.5, - "Er147_m1": 2.5, - "Er148": 4.6, - "Er149": 4.0, - "Er149_m1": 8.9, - "Er150": 18.5, - "Er151": 23.5, - "Er151_m1": 0.58, - "Er152": 10.3, - "Er153": 37.1, - "Er154": 223.8, - "Er155": 318.0, - "Er156": 1170.0, - "Er157": 1119.0, - "Er157_m1": 0.076, - "Er158": 8244.0, - "Er159": 2160.0, - "Er160": 102888.0, - "Er161": 11556.0, - "Er163": 4500.0, - "Er165": 37296.0, - "Er167_m1": 2.269, - "Er169": 811468.8, - "Er171": 27057.6, - "Er172": 177480.0, - "Er173": 84.0, - "Er174": 192.0, - "Er175": 72.0, - "Er176": 20.0, - "Er177": 3.0, - "Tm145": 3.1e-06, - "Tm146": 0.08, - "Tm146_m1": 0.2, - "Tm147": 0.58, - "Tm148": 0.7, - "Tm149": 0.9, - "Tm150": 2.2, - "Tm150_m1": 0.0052, - "Tm151": 4.17, - "Tm151_m1": 4.51e-07, - "Tm152": 8.0, - "Tm152_m1": 5.2, - "Tm153": 1.48, - "Tm153_m1": 2.5, - "Tm154": 8.1, - "Tm154_m1": 3.3, - "Tm155": 21.6, - "Tm155_m1": 45.0, - "Tm156": 83.8, - "Tm157": 217.8, - "Tm158": 238.8, - "Tm159": 547.8, - "Tm160": 564.0, - "Tm160_m1": 74.5, - "Tm161": 1812.0, - "Tm162": 1302.0, - "Tm162_m1": 24.3, - "Tm163": 6516.0, - "Tm164": 120.0, - "Tm164_m1": 306.0, - "Tm165": 108216.0, - "Tm166": 27720.0, - "Tm166_m1": 0.34, - "Tm167": 799200.0, - "Tm168": 8043840.0, - "Tm170": 11111040.0, - "Tm171": 60590590.0, - "Tm172": 228960.0, - "Tm173": 29664.0, - "Tm174": 324.0, - "Tm175": 912.0, - "Tm176": 114.0, - "Tm177": 90.0, - "Tm178": 30.0, - "Tm179": 20.0, - "Yb148": 0.25, - "Yb149": 0.7, - "Yb150": 2e-07, - "Yb151": 1.6, - "Yb151_m1": 1.6, - "Yb152": 3.04, - "Yb153": 4.2, - "Yb154": 0.409, - "Yb155": 1.793, - "Yb156": 26.1, - "Yb157": 38.6, - "Yb158": 89.4, - "Yb159": 100.2, - "Yb160": 288.0, - "Yb161": 252.0, - "Yb162": 1132.2, - "Yb163": 663.0, - "Yb164": 4548.0, - "Yb165": 594.0, - "Yb166": 204120.0, - "Yb167": 1050.0, - "Yb169": 2766355.0, - "Yb169_m1": 46.0, - "Yb171_m1": 0.00525, - "Yb175": 361584.0, - "Yb175_m1": 0.0682, - "Yb176_m1": 11.4, - "Yb177": 6879.6, - "Yb177_m1": 6.41, - "Yb178": 4440.0, - "Yb179": 480.0, - "Yb180": 144.0, - "Yb181": 60.0, - "Lu150": 0.043, - "Lu151": 0.0806, - "Lu152": 0.7, - "Lu153": 0.9, - "Lu153_m1": 1.0, - "Lu154": 2.0, - "Lu154_m1": 1.12, - "Lu155": 0.068, - "Lu155_m1": 0.138, - "Lu155_m2": 0.00269, - "Lu156": 0.494, - "Lu156_m1": 0.198, - "Lu157": 6.8, - "Lu157_m1": 4.79, - "Lu158": 10.6, - "Lu159": 12.1, - "Lu160": 36.1, - "Lu160_m1": 40.0, - "Lu161": 77.0, - "Lu161_m1": 0.0073, - "Lu162": 82.2, - "Lu162_m1": 90.0, - "Lu162_m2": 114.0, - "Lu163": 238.2, - "Lu164": 188.4, - "Lu165": 644.4, - "Lu166": 159.0, - "Lu166_m1": 84.6, - "Lu166_m2": 127.2, - "Lu167": 3090.0, - "Lu167_m1": 60.0, - "Lu168": 330.0, - "Lu168_m1": 402.0, - "Lu169": 122616.0, - "Lu169_m1": 160.0, - "Lu170": 173836.8, - "Lu170_m1": 0.67, - "Lu171": 711936.0, - "Lu171_m1": 79.0, - "Lu172": 578880.0, - "Lu172_m1": 222.0, - "Lu173": 43233910.0, - "Lu174": 104455700.0, - "Lu174_m1": 12268800.0, - "Lu176": 1.18657e18, - "Lu176_m1": 13086.0, - "Lu177": 574300.8, - "Lu177_m1": 13862020.0, - "Lu177_m2": 390.0, - "Lu178": 1704.0, - "Lu178_m1": 1386.0, - "Lu179": 16524.0, - "Lu179_m1": 0.0031, - "Lu180": 342.0, - "Lu180_m1": 0.001, - "Lu181": 210.0, - "Lu182": 120.0, - "Lu183": 58.0, - "Lu184": 20.0, - "Hf153": 6e-06, - "Hf154": 2.0, - "Hf155": 0.89, - "Hf156": 0.023, - "Hf157": 0.11, - "Hf158": 2.85, - "Hf159": 5.6, - "Hf160": 13.6, - "Hf161": 18.2, - "Hf162": 39.4, - "Hf163": 40.0, - "Hf164": 111.0, - "Hf165": 76.0, - "Hf166": 406.2, - "Hf167": 123.0, - "Hf168": 1557.0, - "Hf169": 194.4, - "Hf170": 57636.0, - "Hf171": 43560.0, - "Hf171_m1": 29.5, - "Hf172": 59012710.0, - "Hf173": 84960.0, - "Hf174": 6.31152e22, - "Hf175": 6048000.0, - "Hf177_m1": 1.09, - "Hf177_m2": 3084.0, - "Hf178_m1": 4.0, - "Hf178_m2": 978285600.0, - "Hf179_m1": 18.67, - "Hf179_m2": 2164320.0, - "Hf180_m1": 19800.0, - "Hf181": 3662496.0, - "Hf182": 280863000000000.0, - "Hf182_m1": 3690.0, - "Hf183": 3841.2, - "Hf184": 14832.0, - "Hf184_m1": 48.0, - "Hf185": 210.0, - "Hf186": 156.0, - "Hf187": 30.0, - "Hf188": 20.0, - "Ta155": 0.0031, - "Ta156": 0.144, - "Ta156_m1": 0.36, - "Ta157": 0.0101, - "Ta157_m1": 0.0043, - "Ta157_m2": 0.0017, - "Ta158": 0.055, - "Ta158_m1": 0.0367, - "Ta159": 0.83, - "Ta159_m1": 0.515, - "Ta160": 1.55, - "Ta160_m1": 1.7, - "Ta161": 2.89, - "Ta162": 3.57, - "Ta163": 10.6, - "Ta164": 14.2, - "Ta165": 31.0, - "Ta166": 34.4, - "Ta167": 80.0, - "Ta168": 120.0, - "Ta169": 294.0, - "Ta170": 405.6, - "Ta171": 1398.0, - "Ta172": 2208.0, - "Ta173": 11304.0, - "Ta174": 4104.0, - "Ta175": 37800.0, - "Ta176": 29124.0, - "Ta176_m1": 0.0011, - "Ta176_m2": 0.00097, - "Ta177": 203616.0, - "Ta178": 558.6, - "Ta178_m1": 8496.0, - "Ta178_m2": 0.058, - "Ta179": 57434830.0, - "Ta179_m1": 0.009, - "Ta179_m2": 0.0541, - "Ta180": 29354.4, - "Ta182": 9913536.0, - "Ta182_m1": 0.283, - "Ta182_m2": 950.4, - "Ta183": 440640.0, - "Ta184": 31320.0, - "Ta185": 2964.0, - "Ta185_m1": 0.002, - "Ta186": 630.0, - "Ta187": 120.0, - "Ta188": 20.0, - "Ta189": 3.0, - "Ta190": 0.3, - "W158": 0.00125, - "W159": 0.0073, - "W160": 0.091, - "W161": 0.409, - "W162": 1.36, - "W163": 2.8, - "W164": 6.3, - "W165": 5.1, - "W166": 19.2, - "W167": 19.9, - "W168": 53.0, - "W169": 74.0, - "W170": 145.2, - "W171": 142.8, - "W172": 396.0, - "W173": 456.0, - "W174": 1992.0, - "W175": 2112.0, - "W176": 9000.0, - "W177": 7920.0, - "W178": 1866240.0, - "W179": 2223.0, - "W179_m1": 384.0, - "W180": 5.68037e25, - "W180_m1": 0.00547, - "W181": 10471680.0, - "W183_m1": 5.2, - "W185": 6488640.0, - "W185_m1": 100.2, - "W186": 5.36e27, - "W186_m1": 0.003, - "W187": 86400.0, - "W188": 6028992.0, - "W189": 642.0, - "W190": 1800.0, - "W190_m1": 0.0031, - "W191": 20.0, - "W192": 10.0, - "Re160": 0.00085, - "Re161": 0.00037, - "Re161_m1": 0.0156, - "Re162": 0.107, - "Re162_m1": 0.077, - "Re163": 0.39, - "Re163_m1": 0.214, - "Re164": 0.53, - "Re164_m1": 0.87, - "Re165": 1.0, - "Re165_m1": 2.1, - "Re166": 2.25, - "Re167": 5.9, - "Re167_m1": 3.4, - "Re168": 4.4, - "Re169": 8.1, - "Re169_m1": 15.1, - "Re170": 9.2, - "Re171": 15.2, - "Re172": 55.0, - "Re172_m1": 15.0, - "Re173": 118.8, - "Re174": 144.0, - "Re175": 353.4, - "Re176": 318.0, - "Re177": 840.0, - "Re178": 792.0, - "Re179": 1170.0, - "Re180": 146.4, - "Re181": 71640.0, - "Re182": 230400.0, - "Re182_m1": 45720.0, - "Re183": 6048000.0, - "Re183_m1": 0.00104, - "Re184": 3058560.0, - "Re184_m1": 14601600.0, - "Re186": 321261.1, - "Re186_m1": 6311520000000.0, - "Re187": 1.36644e18, - "Re188": 61214.4, - "Re188_m1": 1115.4, - "Re189": 87480.0, - "Re190": 186.0, - "Re190_m1": 11520.0, - "Re191": 588.0, - "Re192": 16.0, - "Re193": 51.9, - "Re194": 1.0, - "Os162": 0.00205, - "Os163": 0.0055, - "Os164": 0.021, - "Os165": 0.071, - "Os166": 0.199, - "Os167": 0.81, - "Os168": 2.1, - "Os169": 3.43, - "Os170": 7.37, - "Os171": 8.3, - "Os172": 19.2, - "Os173": 22.4, - "Os174": 44.0, - "Os175": 84.0, - "Os176": 216.0, - "Os177": 180.0, - "Os178": 300.0, - "Os179": 390.0, - "Os180": 1290.0, - "Os181": 6300.0, - "Os181_m1": 162.0, - "Os182": 78624.0, - "Os183": 46800.0, - "Os183_m1": 35640.0, - "Os185": 8087040.0, - "Os186": 6.31152e22, - "Os189_m1": 20916.0, - "Os190_m1": 594.0, - "Os191": 1330560.0, - "Os191_m1": 47160.0, - "Os192_m1": 5.9, - "Os193": 108396.0, - "Os194": 189345600.0, - "Os195": 540.0, - "Os196": 2094.0, - "Ir164": 0.14, - "Ir164_m1": 9.5e-05, - "Ir165": 1e-06, - "Ir166": 0.0105, - "Ir166_m1": 0.0151, - "Ir167": 0.0352, - "Ir167_m1": 0.0257, - "Ir168": 0.232, - "Ir168_m1": 0.16, - "Ir169": 0.64, - "Ir169_m1": 0.281, - "Ir170": 0.9, - "Ir170_m1": 0.811, - "Ir171": 3.5, - "Ir171_m1": 1.4, - "Ir172": 4.4, - "Ir172_m1": 2.0, - "Ir173": 9.0, - "Ir173_m1": 2.2, - "Ir174": 7.9, - "Ir174_m1": 4.9, - "Ir175": 9.0, - "Ir176": 8.7, - "Ir177": 30.0, - "Ir178": 12.0, - "Ir179": 79.0, - "Ir180": 90.0, - "Ir181": 294.0, - "Ir182": 900.0, - "Ir183": 3480.0, - "Ir184": 11124.0, - "Ir185": 51840.0, - "Ir186": 59904.0, - "Ir186_m1": 6840.0, - "Ir187": 37800.0, - "Ir187_m1": 0.0303, - "Ir188": 149400.0, - "Ir188_m1": 0.0042, - "Ir189": 1140480.0, - "Ir189_m1": 0.0133, - "Ir189_m2": 0.0037, - "Ir190": 1017792.0, - "Ir190_m1": 4032.0, - "Ir190_m2": 11113.2, - "Ir191_m1": 4.899, - "Ir191_m2": 5.5, - "Ir192": 6378653.0, - "Ir192_m1": 87.0, - "Ir192_m2": 7605382000.0, - "Ir193_m1": 909792.0, - "Ir194": 69408.0, - "Ir194_m1": 0.03185, - "Ir194_m2": 14774400.0, - "Ir195": 9000.0, - "Ir195_m1": 13680.0, - "Ir196": 52.0, - "Ir196_m1": 5040.0, - "Ir197": 348.0, - "Ir197_m1": 534.0, - "Ir198": 8.0, - "Ir199": 6.5, - "Pt166": 0.0003, - "Pt167": 0.00078, - "Pt168": 0.002, - "Pt169": 0.007, - "Pt170": 0.014, - "Pt171": 0.051, - "Pt172": 0.096, - "Pt173": 0.382, - "Pt174": 0.889, - "Pt175": 2.53, - "Pt176": 6.33, - "Pt177": 10.6, - "Pt178": 21.1, - "Pt179": 21.2, - "Pt180": 56.0, - "Pt181": 52.0, - "Pt182": 180.0, - "Pt183": 390.0, - "Pt183_m1": 43.0, - "Pt184": 1038.0, - "Pt184_m1": 0.00101, - "Pt185": 4254.0, - "Pt185_m1": 1980.0, - "Pt186": 7488.0, - "Pt187": 8460.0, - "Pt188": 881280.0, - "Pt189": 39132.0, - "Pt190": 2.05124e19, - "Pt191": 242092.8, - "Pt193": 1577880000.0, - "Pt193_m1": 374112.0, - "Pt195_m1": 346464.0, - "Pt197": 71609.4, - "Pt197_m1": 5724.6, - "Pt199": 1848.0, - "Pt199_m1": 13.6, - "Pt200": 45360.0, - "Pt201": 150.0, - "Pt202": 158400.0, - "Au169": 0.00015, - "Au170": 0.000291, - "Au170_m1": 0.00062, - "Au171": 1.9e-05, - "Au171_m1": 0.00102, - "Au172": 0.0047, - "Au173": 0.025, - "Au173_m1": 0.014, - "Au174": 0.139, - "Au174_m1": 0.1629, - "Au175": 0.1, - "Au175_m1": 0.156, - "Au176": 1.05, - "Au176_m1": 1.36, - "Au177": 1.462, - "Au177_m1": 1.18, - "Au178": 2.6, - "Au179": 3.3, - "Au180": 8.1, - "Au181": 13.7, - "Au182": 15.6, - "Au183": 42.8, - "Au184": 20.6, - "Au184_m1": 47.6, - "Au185": 255.0, - "Au186": 642.0, - "Au187": 504.0, - "Au187_m1": 2.3, - "Au188": 530.4, - "Au189": 1722.0, - "Au189_m1": 275.4, - "Au190": 2568.0, - "Au190_m1": 0.125, - "Au191": 11448.0, - "Au191_m1": 0.92, - "Au192": 17784.0, - "Au192_m1": 0.029, - "Au192_m2": 0.16, - "Au193": 63540.0, - "Au193_m1": 3.9, - "Au194": 136872.0, - "Au194_m1": 0.6, - "Au194_m2": 0.42, - "Au195": 16078870.0, - "Au195_m1": 30.5, - "Au196": 532820.2, - "Au196_m1": 8.1, - "Au196_m2": 34560.0, - "Au197_m1": 7.73, - "Au198": 232822.1, - "Au198_m1": 196300.8, - "Au199": 271209.6, - "Au200": 2904.0, - "Au200_m1": 67320.0, - "Au201": 1560.0, - "Au202": 28.4, - "Au203": 60.0, - "Au204": 39.8, - "Au205": 31.0, - "Hg171": 6.9e-05, - "Hg172": 0.000365, - "Hg173": 0.0007, - "Hg174": 0.0019, - "Hg175": 0.0107, - "Hg176": 0.0203, - "Hg177": 0.1273, - "Hg178": 0.269, - "Hg179": 1.08, - "Hg180": 2.58, - "Hg181": 3.6, - "Hg182": 10.83, - "Hg183": 9.4, - "Hg184": 30.9, - "Hg185": 49.1, - "Hg185_m1": 21.6, - "Hg186": 82.8, - "Hg187": 144.0, - "Hg187_m1": 114.0, - "Hg188": 195.0, - "Hg189": 456.0, - "Hg189_m1": 516.0, - "Hg190": 1200.0, - "Hg191": 2940.0, - "Hg191_m1": 3048.0, - "Hg192": 17460.0, - "Hg193": 13680.0, - "Hg193_m1": 42480.0, - "Hg194": 14011600000.0, - "Hg195": 37908.0, - "Hg195_m1": 149760.0, - "Hg197": 230904.0, - "Hg197_m1": 85680.0, - "Hg199_m1": 2560.2, - "Hg203": 4025722.0, - "Hg205": 308.4, - "Hg205_m1": 0.00109, - "Hg206": 499.2, - "Hg207": 174.0, - "Hg208": 2490.0, - "Hg209": 36.5, - "Hg210": 146.0, - "Tl176": 0.006, - "Tl177": 0.018, - "Tl178": 0.06, - "Tl179": 0.23, - "Tl179_m1": 0.0017, - "Tl180": 1.09, - "Tl181": 3.2, - "Tl181_m1": 0.0014, - "Tl182": 3.1, - "Tl183": 6.9, - "Tl183_m1": 0.0533, - "Tl184": 11.0, - "Tl185": 19.5, - "Tl185_m1": 1.93, - "Tl186": 27.5, - "Tl186_m1": 2.9, - "Tl187": 51.0, - "Tl187_m1": 15.6, - "Tl188": 71.0, - "Tl188_m1": 71.0, - "Tl188_m2": 0.041, - "Tl189": 138.0, - "Tl189_m1": 84.0, - "Tl190": 222.0, - "Tl190_m1": 156.0, - "Tl191": 1200.0, - "Tl191_m1": 313.2, - "Tl192": 576.0, - "Tl192_m1": 648.0, - "Tl193": 1296.0, - "Tl193_m1": 126.6, - "Tl194": 1980.0, - "Tl194_m1": 1968.0, - "Tl195": 4176.0, - "Tl195_m1": 3.6, - "Tl196": 6624.0, - "Tl196_m1": 5076.0, - "Tl197": 10224.0, - "Tl197_m1": 0.54, - "Tl198": 19080.0, - "Tl198_m1": 6732.0, - "Tl198_m2": 0.0321, - "Tl199": 26712.0, - "Tl199_m1": 0.0284, - "Tl200": 93960.0, - "Tl200_m1": 0.034, - "Tl201": 262837.4, - "Tl201_m1": 0.00201, - "Tl202": 1063584.0, - "Tl204": 119382400.0, - "Tl206": 252.12, - "Tl206_m1": 224.4, - "Tl207": 286.2, - "Tl207_m1": 1.33, - "Tl208": 183.18, - "Tl209": 132.0, - "Tl210": 78.0, - "Tl211": 60.0, - "Tl212": 67.0, - "Pb178": 0.00023, - "Pb179": 0.003, - "Pb180": 0.0045, - "Pb181": 0.036, - "Pb181_m1": 0.045, - "Pb182": 0.0575, - "Pb183": 0.535, - "Pb183_m1": 0.415, - "Pb184": 0.49, - "Pb185": 6.3, - "Pb185_m1": 4.3, - "Pb186": 4.82, - "Pb187": 15.2, - "Pb187_m1": 18.3, - "Pb188": 25.1, - "Pb189": 39.0, - "Pb189_m1": 50.0, - "Pb190": 71.0, - "Pb191": 79.8, - "Pb191_m1": 130.8, - "Pb192": 210.0, - "Pb193": 120.0, - "Pb193_m1": 348.0, - "Pb194": 720.0, - "Pb195": 900.0, - "Pb195_m1": 900.0, - "Pb196": 2220.0, - "Pb197": 480.0, - "Pb197_m1": 2580.0, - "Pb198": 8640.0, - "Pb199": 5400.0, - "Pb199_m1": 732.0, - "Pb200": 77400.0, - "Pb201": 33588.0, - "Pb201_m1": 60.8, - "Pb202": 1656770000000.0, - "Pb202_m1": 12744.0, - "Pb203": 186912.0, - "Pb203_m1": 6.21, - "Pb203_m2": 0.48, - "Pb204": 4.4e24, - "Pb204_m1": 4015.8, - "Pb205": 545946000000000.0, - "Pb205_m1": 0.00555, - "Pb207_m1": 0.806, - "Pb209": 11710.8, - "Pb210": 700578700.0, - "Pb211": 2166.0, - "Pb212": 38304.0, - "Pb213": 612.0, - "Pb214": 1608.0, - "Pb215": 36.0, - "Bi184": 0.013, - "Bi184_m1": 0.0066, - "Bi185": 5.8e-05, - "Bi186": 0.015, - "Bi186_m1": 0.0098, - "Bi187": 0.032, - "Bi187_m1": 0.00031, - "Bi188": 0.06, - "Bi188_m1": 0.265, - "Bi189": 0.674, - "Bi189_m1": 0.005, - "Bi190": 6.3, - "Bi190_m1": 6.2, - "Bi191": 12.4, - "Bi191_m1": 0.125, - "Bi192": 34.6, - "Bi192_m1": 39.6, - "Bi193": 63.6, - "Bi193_m1": 3.2, - "Bi194": 95.0, - "Bi194_m1": 125.0, - "Bi194_m2": 115.0, - "Bi195": 183.0, - "Bi195_m1": 87.0, - "Bi196": 308.0, - "Bi196_m1": 0.6, - "Bi196_m2": 240.0, - "Bi197": 559.8, - "Bi197_m1": 302.4, - "Bi198": 618.0, - "Bi198_m1": 696.0, - "Bi198_m2": 7.7, - "Bi199": 1620.0, - "Bi199_m1": 1482.0, - "Bi200": 2184.0, - "Bi200_m1": 1860.0, - "Bi200_m2": 0.4, - "Bi201": 6180.0, - "Bi201_m1": 3450.0, - "Bi202": 6156.0, - "Bi203": 42336.0, - "Bi203_m1": 0.305, - "Bi204": 40392.0, - "Bi204_m1": 0.013, - "Bi204_m2": 0.00107, - "Bi205": 1322784.0, - "Bi206": 539395.2, - "Bi207": 995642300.0, - "Bi208": 11613200000000.0, - "Bi208_m1": 0.00258, - "Bi209": 5.99594e26, - "Bi210": 433036.8, - "Bi210_m1": 95935100000000.0, - "Bi211": 128.4, - "Bi212": 3633.0, - "Bi212_m1": 1500.0, - "Bi212_m2": 420.0, - "Bi213": 2735.4, - "Bi214": 1194.0, - "Bi215": 462.0, - "Bi215_m1": 36.4, - "Bi216": 135.0, - "Bi217": 98.5, - "Bi218": 33.0, - "Po188": 0.000425, - "Po189": 0.0035, - "Po190": 0.00245, - "Po191": 0.022, - "Po191_m1": 0.093, - "Po192": 0.0332, - "Po193": 0.37, - "Po193_m1": 0.373, - "Po194": 0.392, - "Po195": 4.64, - "Po195_m1": 1.92, - "Po196": 5.8, - "Po197": 84.0, - "Po197_m1": 32.0, - "Po198": 106.2, - "Po199": 328.2, - "Po199_m1": 250.2, - "Po200": 690.6, - "Po201": 936.0, - "Po201_m1": 537.6, - "Po202": 2676.0, - "Po203": 2202.0, - "Po203_m1": 45.0, - "Po204": 12708.0, - "Po205": 6264.0, - "Po205_m1": 0.000645, - "Po205_m2": 0.0574, - "Po206": 760320.0, - "Po207": 20880.0, - "Po207_m1": 2.79, - "Po208": 91453920.0, - "Po209": 3218880000.0, - "Po210": 11955690.0, - "Po211": 0.516, - "Po211_m1": 25.2, - "Po212": 2.99e-07, - "Po212_m1": 45.1, - "Po213": 4.2e-06, - "Po214": 0.0001643, - "Po215": 0.001781, - "Po216": 0.145, - "Po217": 1.53, - "Po218": 185.88, - "Po219": 3e-07, - "Po220": 3e-07, - "At193": 0.0285, - "At194": 0.04, - "At194_m1": 0.25, - "At195": 0.328, - "At195_m1": 0.147, - "At196": 0.388, - "At196_m1": 1.1e-05, - "At197": 0.388, - "At197_m1": 2.0, - "At198": 4.2, - "At198_m1": 1.0, - "At199": 7.03, - "At200": 43.0, - "At200_m1": 47.0, - "At200_m2": 7.9, - "At201": 85.2, - "At202": 184.0, - "At202_m1": 182.0, - "At202_m2": 0.46, - "At203": 444.0, - "At204": 553.2, - "At204_m1": 0.108, - "At205": 1614.0, - "At206": 1836.0, - "At207": 6480.0, - "At208": 5868.0, - "At209": 19476.0, - "At210": 29160.0, - "At211": 25970.4, - "At212": 0.314, - "At212_m1": 0.119, - "At213": 1.25e-07, - "At214": 5.58e-07, - "At215": 0.0001, - "At216": 0.0003, - "At217": 0.0323, - "At218": 1.5, - "At219": 56.0, - "At220": 222.6, - "At221": 138.0, - "At222": 54.0, - "At223": 50.0, - "Rn195": 0.0065, - "Rn195_m1": 0.005, - "Rn196": 0.0046, - "Rn197": 0.066, - "Rn197_m1": 0.021, - "Rn198": 0.065, - "Rn199": 0.59, - "Rn199_m1": 0.31, - "Rn200": 1.075, - "Rn201": 7.0, - "Rn201_m1": 3.8, - "Rn202": 9.7, - "Rn203": 44.0, - "Rn203_m1": 26.9, - "Rn204": 70.2, - "Rn205": 170.0, - "Rn206": 340.2, - "Rn207": 555.0, - "Rn208": 1461.0, - "Rn209": 1728.0, - "Rn210": 8640.0, - "Rn211": 52560.0, - "Rn212": 1434.0, - "Rn213": 0.025, - "Rn214": 2.7e-07, - "Rn215": 2.3e-06, - "Rn216": 4.5e-05, - "Rn217": 0.00054, - "Rn218": 0.035, - "Rn219": 3.96, - "Rn220": 55.6, - "Rn221": 1542.0, - "Rn222": 330350.4, - "Rn223": 1458.0, - "Rn224": 6420.0, - "Rn225": 279.6, - "Rn226": 444.0, - "Rn227": 20.8, - "Rn228": 65.0, - "Fr199": 0.015, - "Fr200": 0.049, - "Fr201": 0.069, - "Fr202": 0.3, - "Fr202_m1": 0.29, - "Fr203": 0.55, - "Fr204": 1.7, - "Fr204_m1": 2.6, - "Fr204_m2": 1.0, - "Fr205": 3.8, - "Fr206": 16.0, - "Fr206_m1": 16.0, - "Fr206_m2": 0.7, - "Fr207": 14.8, - "Fr208": 59.1, - "Fr209": 50.0, - "Fr210": 190.8, - "Fr211": 186.0, - "Fr212": 1200.0, - "Fr213": 34.82, - "Fr214": 0.005, - "Fr214_m1": 0.00335, - "Fr215": 8.6e-08, - "Fr216": 7e-07, - "Fr217": 1.9e-05, - "Fr218": 0.001, - "Fr218_m1": 0.022, - "Fr219": 0.02, - "Fr220": 27.4, - "Fr221": 294.0, - "Fr222": 852.0, - "Fr223": 1320.0, - "Fr224": 199.8, - "Fr225": 237.0, - "Fr226": 49.0, - "Fr227": 148.2, - "Fr228": 38.0, - "Fr229": 50.2, - "Fr230": 19.1, - "Fr231": 17.6, - "Fr232": 5.5, - "Ra202": 0.0275, - "Ra203": 0.031, - "Ra203_m1": 0.025, - "Ra204": 0.0605, - "Ra205": 0.22, - "Ra205_m1": 0.18, - "Ra206": 0.24, - "Ra207": 1.3, - "Ra207_m1": 0.055, - "Ra208": 1.3, - "Ra209": 4.6, - "Ra210": 3.7, - "Ra211": 13.0, - "Ra212": 13.0, - "Ra213": 163.8, - "Ra213_m1": 0.0021, - "Ra214": 2.46, - "Ra215": 0.00155, - "Ra216": 1.82e-07, - "Ra217": 1.6e-06, - "Ra218": 2.52e-05, - "Ra219": 0.01, - "Ra220": 0.018, - "Ra221": 28.0, - "Ra222": 36.17, - "Ra223": 987552.0, - "Ra224": 316224.0, - "Ra225": 1287360.0, - "Ra226": 50492200000.0, - "Ra227": 2532.0, - "Ra228": 181456200.0, - "Ra229": 240.0, - "Ra230": 5580.0, - "Ra231": 103.0, - "Ra232": 252.0, - "Ra233": 30.0, - "Ra234": 30.0, - "Ac206": 0.024, - "Ac206_m1": 0.0395, - "Ac207": 0.027, - "Ac208": 0.095, - "Ac208_m1": 0.025, - "Ac209": 0.098, - "Ac210": 0.35, - "Ac211": 0.21, - "Ac212": 0.93, - "Ac213": 0.8, - "Ac214": 8.2, - "Ac215": 0.17, - "Ac216": 0.00044, - "Ac216_m1": 0.000441, - "Ac217": 6.9e-08, - "Ac218": 1.08e-06, - "Ac219": 1.18e-05, - "Ac220": 0.0264, - "Ac221": 0.052, - "Ac222": 5.0, - "Ac222_m1": 63.0, - "Ac223": 126.0, - "Ac224": 10008.0, - "Ac225": 864000.0, - "Ac226": 105732.0, - "Ac227": 687072100.0, - "Ac228": 22140.0, - "Ac229": 3762.0, - "Ac230": 122.0, - "Ac231": 450.0, - "Ac232": 119.0, - "Ac233": 145.0, - "Ac234": 44.0, - "Ac235": 60.0, - "Ac236": 120.0, - "Th209": 0.0065, - "Th210": 0.016, - "Th211": 0.05, - "Th212": 0.035, - "Th213": 0.14, - "Th214": 0.1, - "Th215": 1.2, - "Th216": 0.026, - "Th217": 0.000251, - "Th218": 1.17e-07, - "Th219": 1.05e-06, - "Th220": 9.7e-06, - "Th221": 0.00173, - "Th222": 0.002237, - "Th223": 0.6, - "Th224": 1.05, - "Th225": 523.2, - "Th226": 1834.2, - "Th227": 1613952.0, - "Th228": 60338130.0, - "Th229": 231633000000.0, - "Th230": 2378810000000.0, - "Th231": 91872.0, - "Th232": 4.43384e17, - "Th233": 1338.0, - "Th234": 2082240.0, - "Th235": 426.0, - "Th236": 2238.0, - "Th237": 282.0, - "Th238": 564.0, - "Pa212": 0.0051, - "Pa213": 0.0053, - "Pa214": 0.017, - "Pa215": 0.014, - "Pa216": 0.16, - "Pa217": 0.0036, - "Pa217_m1": 0.0012, - "Pa218": 0.000113, - "Pa219": 5.3e-08, - "Pa220": 7.8e-07, - "Pa221": 5.9e-06, - "Pa222": 0.0033, - "Pa223": 0.0051, - "Pa224": 0.79, - "Pa225": 1.7, - "Pa226": 108.0, - "Pa227": 2298.0, - "Pa228": 79200.0, - "Pa229": 129600.0, - "Pa230": 1503360.0, - "Pa231": 1033830000000.0, - "Pa232": 114048.0, - "Pa233": 2330640.0, - "Pa234": 24120.0, - "Pa234_m1": 69.54, - "Pa235": 1466.4, - "Pa236": 546.0, - "Pa237": 522.0, - "Pa238": 136.2, - "Pa239": 6480.0, - "Pa240": 120.0, - "U217": 0.0235, - "U218": 0.000545, - "U219": 4.2e-05, - "U220": 6e-08, - "U222": 1.3e-06, - "U223": 1.8e-05, - "U224": 0.0009, - "U225": 0.084, - "U226": 0.35, - "U227": 66.0, - "U228": 546.0, - "U229": 3480.0, - "U230": 1797120.0, - "U231": 362880.0, - "U232": 2174319000.0, - "U233": 5023970000000.0, - "U234": 7747390000000.0, - "U235": 2.22102e16, - "U235_m1": 1560.0, - "U236": 739079000000000.0, - "U237": 583200.0, - "U238": 1.40999e17, - "U239": 1407.0, - "U240": 50760.0, - "U241": 300.0, - "U242": 1008.0, - "Np225": 2e-06, - "Np226": 0.035, - "Np227": 0.51, - "Np228": 61.4, - "Np229": 240.0, - "Np230": 276.0, - "Np231": 2928.0, - "Np232": 882.0, - "Np233": 2172.0, - "Np234": 380160.0, - "Np235": 34231680.0, - "Np236": 4828310000000.0, - "Np236_m1": 81000.0, - "Np237": 67659500000000.0, - "Np238": 182908.8, - "Np239": 203558.4, - "Np240": 3714.0, - "Np240_m1": 433.2, - "Np241": 834.0, - "Np242": 132.0, - "Np242_m1": 330.0, - "Np243": 111.0, - "Np244": 137.4, - "Pu228": 1.85, - "Pu229": 112.0, - "Pu230": 102.0, - "Pu231": 516.0, - "Pu232": 2028.0, - "Pu233": 1254.0, - "Pu234": 31680.0, - "Pu235": 1518.0, - "Pu236": 90191620.0, - "Pu237": 3943296.0, - "Pu237_m1": 0.18, - "Pu238": 2767602000.0, - "Pu239": 760854000000.0, - "Pu240": 207049000000.0, - "Pu241": 450958100.0, - "Pu242": 11786800000000.0, - "Pu243": 17841.6, - "Pu244": 2559320000000000.0, - "Pu245": 37800.0, - "Pu246": 936576.0, - "Pu247": 196128.0, - "Am231": 10.0, - "Am232": 79.0, - "Am233": 192.0, - "Am234": 139.2, - "Am235": 618.0, - "Am236": 216.0, - "Am237": 4416.0, - "Am238": 5880.0, - "Am239": 42840.0, - "Am240": 182880.0, - "Am241": 13651800000.0, - "Am242": 57672.0, - "Am242_m1": 4449622000.0, - "Am242_m2": 0.014, - "Am243": 232580000000.0, - "Am244": 36360.0, - "Am244_m1": 1560.0, - "Am245": 7380.0, - "Am246": 2340.0, - "Am246_m1": 1500.0, - "Am247": 1380.0, - "Am248": 600.0, - "Am249": 120.0, - "Cm233": 17.7, - "Cm234": 51.0, - "Cm235": 300.0, - "Cm236": 1900.0, - "Cm237": 1200.0, - "Cm238": 8640.0, - "Cm239": 10440.0, - "Cm240": 2332800.0, - "Cm241": 2833920.0, - "Cm242": 14078020.0, - "Cm243": 918326200.0, - "Cm244": 571508100.0, - "Cm244_m1": 5e-07, - "Cm245": 268240000000.0, - "Cm246": 150214000000.0, - "Cm247": 492299000000000.0, - "Cm248": 10982000000000.0, - "Cm249": 3849.0, - "Cm250": 261928000000.0, - "Cm251": 1008.0, - "Bk235": 20.0, - "Bk237": 60.0, - "Bk238": 144.0, - "Bk240": 288.0, - "Bk241": 276.0, - "Bk242": 420.0, - "Bk243": 16200.0, - "Bk244": 15660.0, - "Bk245": 426816.0, - "Bk246": 155520.0, - "Bk247": 43549500000.0, - "Bk248": 283824000.0, - "Bk248_m1": 85320.0, - "Bk249": 27648000.0, - "Bk250": 11563.2, - "Bk251": 3336.0, - "Bk253": 600.0, - "Bk254": 120.0, - "Cf237": 2.1, - "Cf238": 0.021, - "Cf239": 51.5, - "Cf240": 57.6, - "Cf241": 226.8, - "Cf242": 222.0, - "Cf243": 642.0, - "Cf244": 1164.0, - "Cf245": 2700.0, - "Cf246": 128520.0, - "Cf247": 11196.0, - "Cf248": 28814400.0, - "Cf249": 11076700000.0, - "Cf250": 412773400.0, - "Cf251": 28338700000.0, - "Cf252": 83468070.0, - "Cf253": 1538784.0, - "Cf254": 5227200.0, - "Cf255": 5100.0, - "Cf256": 738.0, - "Es240": 1.0, - "Es241": 8.5, - "Es242": 13.5, - "Es243": 21.0, - "Es244": 37.0, - "Es245": 66.0, - "Es246": 462.0, - "Es247": 273.0, - "Es247_m1": 54000000.0, - "Es248": 1620.0, - "Es249": 6132.0, - "Es250": 30960.0, - "Es250_m1": 7992.0, - "Es251": 118800.0, - "Es252": 40754880.0, - "Es253": 1768608.0, - "Es254": 23820480.0, - "Es254_m1": 141479.9, - "Es255": 3438720.0, - "Es256": 1524.0, - "Es256_m1": 27360.0, - "Es257": 665280.0, - "Es258": 180.0, - "Fm242": 0.0008, - "Fm243": 0.2, - "Fm244": 0.0033, - "Fm245": 4.2, - "Fm246": 1.1, - "Fm247": 29.0, - "Fm248": 36.0, - "Fm249": 156.0, - "Fm250": 1800.0, - "Fm250_m1": 1.8, - "Fm251": 19080.0, - "Fm252": 91404.0, - "Fm253": 259200.0, - "Fm254": 11664.0, - "Fm255": 72252.0, - "Fm256": 9456.0, - "Fm257": 8683200.0, - "Fm258": 0.00037, - "Fm259": 1.5, - "Fm260": 0.004, - "Md245": 0.0009, - "Md245_m1": 0.39, - "Md246": 0.9, - "Md247": 1.12, - "Md247_m1": 0.26, - "Md248": 7.0, - "Md249": 24.0, - "Md249_m1": 1.9, - "Md250": 27.5, - "Md251": 240.0, - "Md252": 138.0, - "Md253": 630.0, - "Md254": 1680.0, - "Md254_m1": 1680.0, - "Md255": 1620.0, - "Md256": 4620.0, - "Md257": 19872.0, - "Md258": 4449600.0, - "Md258_m1": 3420.0, - "Md259": 5760.0, - "Md260": 2747520.0, - "Md261": 2400.0, - "No250": 4.35e-06, - "No251": 0.8, - "No251_m1": 1.02, - "No252": 2.44, - "No253": 97.2, - "No254": 51.0, - "No254_m1": 0.28, - "No255": 186.0, - "No256": 2.91, - "No257": 25.0, - "No258": 0.0012, - "No259": 3480.0, - "No260": 0.106, - "No261": 160000.0, - "No262": 0.005, - "Lr251": 1.341, - "Lr252": 0.38, - "Lr253": 0.575, - "Lr253_m1": 1.535, - "Lr254": 13.0, - "Lr255": 22.0, - "Lr255_m1": 2.53, - "Lr256": 27.0, - "Lr257": 0.646, - "Lr258": 4.1, - "Lr259": 6.2, - "Lr260": 180.0, - "Lr261": 2340.0, - "Lr262": 14400.0, - "Lr263": 18000.0, - "Rf253": 5.15e-05, - "Rf254": 2.3e-05, - "Rf255": 1.68, - "Rf256": 0.0064, - "Rf257": 4.7, - "Rf257_m1": 3.9, - "Rf258": 0.012, - "Rf259": 3.2, - "Rf260": 0.021, - "Rf261": 65.0, - "Rf261_m1": 81.0, - "Rf262": 2.3, - "Rf263": 600.0, - "Rf264": 3600.0, - "Rf265": 1.0, - "Db255": 1.7, - "Db256": 1.7, - "Db257": 1.52, - "Db257_m1": 0.78, - "Db258": 4.0, - "Db258_m1": 20.0, - "Db259": 0.51, - "Db260": 1.52, - "Db261": 1.8, - "Db262": 35.0, - "Db263": 28.5, - "Db264": 180.0, - "Db265": 900.0, - "Sg258": 0.0032, - "Sg259": 0.555, - "Sg260": 0.0036, - "Sg261": 0.23, - "Sg262": 0.0079, - "Sg263": 1.0, - "Sg263_m1": 0.12, - "Sg264": 0.045, - "Sg265": 8.0, - "Sg266": 25.0, - "Sg269": 50.0, - "Bh260": 0.0003, - "Bh261": 0.013, - "Bh262": 0.102, - "Bh262_m1": 0.022, - "Bh263": 0.0002, - "Bh264": 0.66, - "Bh265": 1.1, - "Bh266": 5.4, - "Bh267": 21.0, - "Bh269": 50.0, - "Hs263": 0.00355, - "Hs264": 0.0008, - "Hs265": 0.00205, - "Hs265_m1": 0.0003, - "Hs266": 0.00265, - "Hs267": 0.0545, - "Hs268": 1.2, - "Hs269": 12.9, - "Hs273": 50.0, - "Mt265": 120.0, - "Mt266": 0.0018, - "Mt266_m1": 0.0017, - "Mt267": 0.01, - "Mt268": 0.0225, - "Mt269": 0.05, - "Mt270": 0.00605, - "Mt271": 5.0, - "Mt273": 20.0, - "Ds267": 2.8e-06, - "Ds268": 0.0001, - "Ds269": 0.000268, - "Ds270": 0.00015, - "Ds270_m1": 0.009, - "Ds271": 0.001705, - "Ds271_m1": 0.0865, - "Ds272": 1.0, - "Ds273": 0.000225, - "Ds279_m1": 0.19, - "Rg272": 0.0041 + "h3": 388789600.0, + "h4": 9.90652e-23, + "h5": 7.99473e-23, + "h6": 2.84812e-22, + "h7": 2.3e-23, + "he5": 7.595e-22, + "he6": 0.8067, + "he7": 3.038e-21, + "he8": 0.1191, + "he9": 7e-21, + "he10": 1.519e-21, + "li4": 7.55721e-23, + "li5": 3.06868e-22, + "li8": 0.838, + "li9": 0.1783, + "li10": 2e-21, + "li11": 0.00859, + "li12": 1e-08, + "be5": 1e-09, + "be6": 4.95326e-21, + "be7": 4598208.0, + "be8": 8.18132e-17, + "be10": 47652000000000.0, + "be11": 13.81, + "be12": 0.0213, + "be13": 2.7e-21, + "be14": 0.00435, + "be15": 2e-07, + "be16": 2e-07, + "b6": 1e-09, + "b7": 3.255e-22, + "b8": 0.77, + "b9": 8.43888e-19, + "b12": 0.0202, + "b13": 0.01736, + "b14": 0.0125, + "b15": 0.00993, + "b16": 1.9e-10, + "b17": 0.00508, + "b18": 2.6e-08, + "b19": 0.00292, + "c8": 1.9813e-21, + "c9": 0.1265, + "c10": 19.29, + "c11": 1223.1, + "c14": 179878000000.0, + "c15": 2.449, + "c16": 0.747, + "c17": 0.193, + "c18": 0.092, + "c19": 0.049, + "c20": 0.0145, + "c21": 3e-08, + "c22": 0.0062, + "n10": 2e-22, + "n11": 3.12742e-22, + "n12": 0.011, + "n13": 597.9, + "n16": 7.13, + "n17": 4.171, + "n18": 0.624, + "n19": 0.271, + "n20": 0.13, + "n21": 0.085, + "n22": 0.024, + "n23": 0.0145, + "n24": 5.2e-08, + "n25": 2.6e-07, + "o12": 1.13925e-21, + "o13": 0.00858, + "o14": 70.606, + "o15": 122.24, + "o19": 26.88, + "o20": 13.51, + "o21": 3.42, + "o22": 2.25, + "o23": 0.0905, + "o24": 0.065, + "o25": 5e-08, + "o26": 4e-08, + "o27": 2.6e-07, + "o28": 1e-07, + "f14": 5.0007e-22, + "f15": 4.557e-22, + "f16": 1.13925e-20, + "f17": 64.49, + "f18": 6586.2, + "f20": 11.163, + "f21": 4.158, + "f22": 4.23, + "f23": 2.23, + "f24": 0.39, + "f25": 0.05, + "f26": 0.0096, + "f27": 0.005, + "f28": 4e-08, + "f29": 0.0025, + "f30": 2.6e-07, + "f31": 2.5e-07, + "ne16": 3.73524e-21, + "ne17": 0.1092, + "ne18": 1.672, + "ne19": 17.22, + "ne23": 37.24, + "ne24": 202.8, + "ne25": 0.602, + "ne26": 0.197, + "ne27": 0.032, + "ne28": 0.0189, + "ne29": 0.0148, + "ne30": 0.0073, + "ne31": 0.0034, + "ne32": 0.0035, + "ne33": 1.8e-07, + "ne34": 6e-08, + "na18": 1.3e-21, + "na19": 4e-08, + "na20": 0.4479, + "na21": 22.49, + "na22": 82134970.0, + "na24": 53989.2, + "na24_m1": 0.02018, + "na25": 59.1, + "na26": 1.077, + "na27": 0.301, + "na28": 0.0305, + "na29": 0.0449, + "na30": 0.048, + "na31": 0.017, + "na32": 0.0132, + "na33": 0.008, + "na34": 0.0055, + "na35": 0.0015, + "na36": 1.8e-07, + "na37": 6e-08, + "mg19": 4e-12, + "mg20": 0.0908, + "mg21": 0.122, + "mg22": 3.8755, + "mg23": 11.317, + "mg27": 567.48, + "mg28": 75294.0, + "mg29": 1.3, + "mg30": 0.335, + "mg31": 0.232, + "mg32": 0.086, + "mg33": 0.0905, + "mg34": 0.02, + "mg35": 0.07, + "mg36": 0.0039, + "mg37": 2.6e-07, + "mg38": 2.6e-07, + "mg39": 1.8e-07, + "mg40": 1.7e-07, + "al21": 3.5e-08, + "al22": 0.059, + "al23": 0.47, + "al24": 2.053, + "al24_m1": 0.13, + "al25": 7.183, + "al26": 22626800000000.0, + "al26_m1": 6.3452, + "al28": 134.484, + "al29": 393.6, + "al30": 3.62, + "al31": 0.644, + "al32": 0.033, + "al33": 0.0417, + "al34": 0.042, + "al35": 0.0386, + "al36": 0.09, + "al37": 0.0107, + "al38": 0.0076, + "al39": 7.6e-06, + "al40": 2.6e-07, + "al41": 2.6e-07, + "al42": 1.7e-07, + "si22": 0.029, + "si23": 0.0423, + "si24": 0.14, + "si25": 0.22, + "si26": 2.234, + "si27": 4.16, + "si31": 9438.0, + "si32": 4828310000.0, + "si33": 6.11, + "si34": 2.77, + "si35": 0.78, + "si36": 0.45, + "si37": 0.09, + "si38": 1e-06, + "si39": 0.0475, + "si40": 0.033, + "si41": 0.02, + "si42": 0.0125, + "si43": 6e-08, + "si44": 3.6e-07, + "p24": 0.0074, + "p25": 3e-08, + "p26": 0.0437, + "p27": 0.26, + "p28": 0.2703, + "p29": 4.142, + "p30": 149.88, + "p32": 1232323.0, + "p33": 2189376.0, + "p34": 12.43, + "p35": 47.3, + "p36": 5.6, + "p37": 2.31, + "p38": 0.64, + "p39": 0.28, + "p40": 0.125, + "p41": 0.1, + "p42": 0.0485, + "p43": 0.0365, + "p44": 0.0185, + "p45": 2e-07, + "p46": 2e-07, + "s26": 0.01, + "s27": 0.0155, + "s28": 0.125, + "s29": 0.187, + "s30": 1.178, + "s31": 2.572, + "s35": 7560864.0, + "s37": 303.0, + "s38": 10218.0, + "s39": 11.5, + "s40": 8.8, + "s41": 1.99, + "s42": 1.013, + "s43": 0.28, + "s44": 0.1, + "s45": 0.068, + "s46": 0.05, + "s48": 2e-07, + "s49": 2e-07, + "cl28": 0.0017, + "cl29": 2e-08, + "cl30": 3e-08, + "cl31": 0.15, + "cl32": 0.298, + "cl33": 2.511, + "cl34": 1.5264, + "cl34_m1": 1920.0, + "cl36": 9498840000000.0, + "cl38": 2233.8, + "cl38_m1": 0.715, + "cl39": 3336.0, + "cl40": 81.0, + "cl41": 38.4, + "cl42": 6.8, + "cl43": 3.13, + "cl44": 0.56, + "cl45": 0.413, + "cl46": 0.232, + "cl47": 0.101, + "cl48": 2e-07, + "cl49": 1.7e-07, + "cl50": 0.02, + "cl51": 2e-07, + "ar30": 2e-08, + "ar31": 0.0151, + "ar32": 0.098, + "ar33": 0.173, + "ar34": 0.8445, + "ar35": 1.775, + "ar37": 3027456.0, + "ar39": 8488990000.0, + "ar41": 6576.6, + "ar42": 1038250000.0, + "ar43": 322.2, + "ar44": 712.2, + "ar45": 21.48, + "ar46": 8.4, + "ar47": 1.23, + "ar48": 0.475, + "ar49": 0.17, + "ar50": 0.085, + "ar51": 2e-07, + "ar52": 0.01, + "ar53": 0.003, + "k32": 0.0033, + "k33": 2.5e-08, + "k34": 2.5e-08, + "k35": 0.178, + "k36": 0.342, + "k37": 1.226, + "k38": 458.16, + "k38_m1": 0.924, + "k40": 3.93839e16, + "k42": 44496.0, + "k43": 80280.0, + "k44": 1327.8, + "k45": 1068.6, + "k46": 105.0, + "k47": 17.5, + "k48": 6.8, + "k49": 1.26, + "k50": 0.472, + "k51": 0.365, + "k52": 0.105, + "k53": 0.03, + "k54": 0.01, + "k55": 0.003, + "ca34": 3.5e-08, + "ca35": 0.0257, + "ca36": 0.102, + "ca37": 0.1811, + "ca38": 0.44, + "ca39": 0.8596, + "ca41": 3218880000000.0, + "ca45": 14049500.0, + "ca47": 391910.4, + "ca48": 7.25824e26, + "ca49": 523.08, + "ca50": 13.9, + "ca51": 10.0, + "ca52": 4.6, + "ca53": 0.09, + "ca54": 0.086, + "ca55": 0.022, + "ca56": 0.01, + "ca57": 0.005, + "sc36": 0.0088, + "sc37": 0.056, + "sc38": 0.0423, + "sc39": 3e-07, + "sc40": 0.1823, + "sc41": 0.5963, + "sc42": 0.6808, + "sc42_m1": 62.0, + "sc43": 14007.6, + "sc44": 14292.0, + "sc44_m1": 210996.0, + "sc45_m1": 0.318, + "sc46": 7239456.0, + "sc46_m1": 18.75, + "sc47": 289370.9, + "sc48": 157212.0, + "sc49": 3430.8, + "sc50": 102.5, + "sc50_m1": 0.35, + "sc51": 12.4, + "sc52": 8.2, + "sc53": 3.0, + "sc54": 0.36, + "sc55": 0.105, + "sc56": 0.06, + "sc57": 0.013, + "sc58": 0.012, + "sc59": 0.01, + "sc60": 0.003, + "ti38": 1.2e-07, + "ti39": 0.032, + "ti40": 0.0533, + "ti41": 0.0804, + "ti42": 0.199, + "ti43": 0.509, + "ti44": 1893460000.0, + "ti45": 11088.0, + "ti51": 345.6, + "ti52": 102.0, + "ti53": 32.7, + "ti54": 1.5, + "ti55": 1.3, + "ti56": 0.2, + "ti57": 0.06, + "ti58": 0.059, + "ti59": 0.03, + "ti60": 0.022, + "ti61": 3e-07, + "ti62": 0.01, + "ti63": 0.003, + "v40": 0.0077, + "v41": 0.0244, + "v42": 5.5e-08, + "v43": 0.8, + "v44": 0.111, + "v44_m1": 0.15, + "v45": 0.547, + "v46": 0.4225, + "v46_m1": 0.00102, + "v47": 1956.0, + "v48": 1380110.0, + "v49": 28512000.0, + "v50": 4.41806e24, + "v52": 224.58, + "v53": 92.58, + "v54": 49.8, + "v55": 6.54, + "v56": 0.216, + "v57": 0.35, + "v58": 0.185, + "v59": 0.075, + "v60": 0.068, + "v61": 0.047, + "v62": 1.5e-07, + "v63": 0.017, + "v64": 0.019, + "v65": 0.01, + "cr42": 0.014, + "cr43": 0.0216, + "cr44": 0.0535, + "cr45": 0.0609, + "cr46": 0.26, + "cr47": 0.5, + "cr48": 77616.0, + "cr49": 2538.0, + "cr51": 2393366.0, + "cr55": 209.82, + "cr56": 356.4, + "cr57": 21.1, + "cr58": 7.0, + "cr59": 0.46, + "cr60": 0.49, + "cr61": 0.27, + "cr62": 0.19, + "cr63": 0.129, + "cr64": 0.043, + "cr65": 0.027, + "cr66": 0.01, + "cr67": 0.05, + "mn44": 1.05e-07, + "mn45": 7e-08, + "mn46": 0.0345, + "mn47": 0.1, + "mn48": 0.1581, + "mn49": 0.382, + "mn50": 0.28319, + "mn50_m1": 105.0, + "mn51": 2772.0, + "mn52": 483062.4, + "mn52_m1": 1266.0, + "mn53": 116763000000000.0, + "mn54": 26961120.0, + "mn56": 9284.04, + "mn57": 85.4, + "mn58": 3.0, + "mn58_m1": 65.4, + "mn59": 4.59, + "mn60": 51.0, + "mn60_m1": 1.77, + "mn61": 0.67, + "mn62": 0.671, + "mn62_m1": 0.092, + "mn63": 0.29, + "mn64": 0.09, + "mn65": 0.092, + "mn66": 0.064, + "mn67": 0.047, + "mn68": 0.028, + "mn69": 0.014, + "fe45": 0.00203, + "fe46": 0.013, + "fe47": 0.0219, + "fe48": 0.044, + "fe49": 0.0647, + "fe50": 0.155, + "fe51": 0.305, + "fe52": 29790.0, + "fe52_m1": 45.9, + "fe53": 510.6, + "fe53_m1": 152.4, + "fe55": 86594050.0, + "fe59": 3844368.0, + "fe60": 47336400000000.0, + "fe61": 358.8, + "fe62": 68.0, + "fe63": 6.1, + "fe64": 2.0, + "fe65": 0.81, + "fe65_m1": 1.12, + "fe66": 0.44, + "fe67": 0.416, + "fe68": 0.187, + "fe69": 0.109, + "fe70": 0.094, + "fe71": 0.028, + "fe72": 1.5e-07, + "co49": 3.5e-08, + "co50": 0.044, + "co51": 2e-07, + "co52": 0.115, + "co53": 0.24, + "co53_m1": 0.247, + "co54": 0.19328, + "co54_m1": 88.8, + "co55": 63108.0, + "co56": 6672931.0, + "co57": 23478340.0, + "co58": 6122304.0, + "co58_m1": 32760.0, + "co60": 166344200.0, + "co60_m1": 628.02, + "co61": 5940.0, + "co62": 90.0, + "co62_m1": 834.6, + "co63": 27.4, + "co64": 0.3, + "co65": 1.16, + "co66": 0.2, + "co67": 0.425, + "co68": 0.199, + "co68_m1": 1.6, + "co69": 0.22, + "co70": 0.119, + "co70_m1": 0.5, + "co71": 0.079, + "co72": 0.0599, + "co73": 0.041, + "co74": 0.03, + "co75": 0.034, + "ni48": 0.0021, + "ni49": 0.0075, + "ni50": 0.012, + "ni51": 2e-07, + "ni52": 0.038, + "ni53": 0.045, + "ni54": 0.104, + "ni55": 0.2047, + "ni56": 524880.0, + "ni57": 128160.0, + "ni59": 2398380000000.0, + "ni63": 3193630000.0, + "ni65": 9061.884, + "ni66": 196560.0, + "ni67": 21.0, + "ni68": 29.0, + "ni69": 11.4, + "ni69_m1": 3.5, + "ni70": 6.0, + "ni71": 2.56, + "ni72": 1.57, + "ni73": 0.84, + "ni74": 0.68, + "ni75": 0.6, + "ni76": 0.238, + "ni77": 0.061, + "ni78": 0.11, + "cu52": 0.0069, + "cu53": 3e-07, + "cu54": 7.5e-08, + "cu55": 0.04, + "cu56": 0.094, + "cu57": 0.1963, + "cu58": 3.204, + "cu59": 81.5, + "cu60": 1422.0, + "cu61": 11998.8, + "cu62": 580.38, + "cu64": 45723.6, + "cu66": 307.2, + "cu67": 222588.0, + "cu68": 31.1, + "cu68_m1": 225.0, + "cu69": 171.0, + "cu70": 44.5, + "cu70_m1": 33.0, + "cu70_m2": 6.6, + "cu71": 19.5, + "cu72": 6.63, + "cu73": 4.2, + "cu74": 1.75, + "cu75": 1.224, + "cu76": 0.653, + "cu76_m1": 1.27, + "cu77": 0.469, + "cu78": 0.335, + "cu79": 0.188, + "cu80": 0.17, + "cu81": 0.028, + "zn54": 0.0037, + "zn55": 0.02, + "zn56": 5e-07, + "zn57": 0.038, + "zn58": 0.084, + "zn59": 0.182, + "zn60": 142.8, + "zn61": 89.1, + "zn61_m1": 0.43, + "zn61_m2": 0.14, + "zn62": 33336.0, + "zn63": 2308.2, + "zn65": 21075550.0, + "zn69": 3384.0, + "zn69_m1": 49536.0, + "zn71": 147.0, + "zn71_m1": 14256.0, + "zn72": 167400.0, + "zn73": 23.5, + "zn73_m1": 5.8, + "zn73_m2": 0.013, + "zn74": 95.6, + "zn75": 10.2, + "zn76": 5.7, + "zn77": 2.08, + "zn77_m1": 1.05, + "zn78": 1.47, + "zn79": 0.995, + "zn80": 0.54, + "zn81": 0.32, + "zn82": 0.052, + "zn83": 0.043, + "ga56": 0.0059, + "ga57": 0.0123, + "ga58": 0.0152, + "ga59": 0.0418, + "ga60": 0.07, + "ga61": 0.168, + "ga62": 0.11612, + "ga63": 32.4, + "ga64": 157.62, + "ga65": 912.0, + "ga66": 34164.0, + "ga67": 281810.9, + "ga68": 4062.6, + "ga70": 1268.4, + "ga72": 50760.0, + "ga72_m1": 0.03968, + "ga73": 17496.0, + "ga74": 487.2, + "ga74_m1": 9.5, + "ga75": 126.0, + "ga76": 32.6, + "ga77": 13.2, + "ga78": 5.09, + "ga79": 2.847, + "ga80": 1.676, + "ga81": 1.217, + "ga82": 0.599, + "ga83": 0.3081, + "ga84": 0.085, + "ga85": 0.048, + "ga86": 0.029, + "ge58": 0.0152, + "ge59": 0.0418, + "ge60": 0.03, + "ge61": 0.039, + "ge62": 1.5e-07, + "ge63": 0.142, + "ge64": 63.7, + "ge65": 30.9, + "ge66": 8136.0, + "ge67": 1134.0, + "ge68": 23410080.0, + "ge69": 140580.0, + "ge71": 987552.0, + "ge71_m1": 0.02041, + "ge73_m1": 0.499, + "ge75": 4966.8, + "ge75_m1": 47.7, + "ge77": 40680.0, + "ge77_m1": 52.9, + "ge78": 5280.0, + "ge79": 18.98, + "ge79_m1": 39.0, + "ge80": 29.5, + "ge81": 7.6, + "ge81_m1": 7.6, + "ge82": 4.55, + "ge83": 1.85, + "ge84": 0.954, + "ge85": 0.535, + "ge86": 0.095, + "ge87": 0.14, + "ge88": 0.066, + "ge89": 0.039, + "as60": 0.0083, + "as61": 0.0166, + "as62": 0.0259, + "as63": 0.0921, + "as64": 0.036, + "as65": 0.128, + "as66": 0.09579, + "as67": 42.5, + "as68": 151.6, + "as69": 913.8, + "as70": 3156.0, + "as71": 235080.0, + "as72": 93600.0, + "as73": 6937920.0, + "as74": 1535328.0, + "as75_m1": 0.01762, + "as76": 94464.0, + "as77": 139788.0, + "as78": 5442.0, + "as79": 540.6, + "as80": 15.2, + "as81": 33.3, + "as82": 19.1, + "as82_m1": 13.6, + "as83": 13.4, + "as84": 4.2, + "as85": 2.021, + "as86": 0.945, + "as87": 0.56, + "as88": 0.112, + "as89": 0.059, + "as90": 0.043, + "as91": 0.044, + "as92": 0.027, + "se65": 0.05, + "se66": 0.033, + "se67": 0.136, + "se68": 35.5, + "se69": 27.4, + "se70": 2466.0, + "se71": 284.4, + "se72": 725760.0, + "se73": 25740.0, + "se73_m1": 2388.0, + "se75": 10349860.0, + "se77_m1": 17.36, + "se79": 9309490000000.0, + "se79_m1": 235.2, + "se81": 1107.0, + "se81_m1": 3436.8, + "se83": 1338.0, + "se83_m1": 70.1, + "se84": 195.6, + "se85": 31.7, + "se86": 14.3, + "se87": 5.5, + "se88": 1.53, + "se89": 0.41, + "se90": 0.161, + "se91": 0.27, + "se92": 0.093, + "se93": 0.062, + "se94": 0.059, + "br67": 0.0443, + "br68": 1.2e-06, + "br69": 2.4e-08, + "br70": 0.0791, + "br70_m1": 2.2, + "br71": 21.4, + "br72": 78.6, + "br72_m1": 10.6, + "br73": 204.0, + "br74": 1524.0, + "br74_m1": 2760.0, + "br75": 5802.0, + "br76": 58320.0, + "br76_m1": 1.31, + "br77": 205329.6, + "br77_m1": 256.8, + "br78": 387.0, + "br79_m1": 4.86, + "br80": 1060.8, + "br80_m1": 15913.8, + "br82": 127015.2, + "br82_m1": 367.8, + "br83": 8640.0, + "br84": 1905.6, + "br84_m1": 360.0, + "br85": 174.0, + "br86": 55.0, + "br87": 55.65, + "br88": 16.29, + "br89": 4.4, + "br90": 1.92, + "br91": 0.541, + "br92": 0.343, + "br93": 0.102, + "br94": 0.07, + "br95": 0.066, + "br96": 0.042, + "br97": 0.04, + "kr69": 0.032, + "kr70": 0.052, + "kr71": 0.1, + "kr72": 17.1, + "kr73": 27.3, + "kr74": 690.0, + "kr75": 257.4, + "kr76": 53280.0, + "kr77": 4464.0, + "kr79": 126144.0, + "kr79_m1": 50.0, + "kr81": 7226690000000.0, + "kr81_m1": 13.1, + "kr83_m1": 6588.0, + "kr85": 339433500.0, + "kr85_m1": 16128.0, + "kr87": 4578.0, + "kr88": 10224.0, + "kr89": 189.0, + "kr90": 32.32, + "kr91": 8.57, + "kr92": 1.84, + "kr93": 1.286, + "kr94": 0.212, + "kr95": 0.114, + "kr96": 0.08, + "kr97": 0.063, + "kr98": 0.046, + "kr99": 0.027, + "kr100": 0.007, + "rb71": 1e-09, + "rb72": 1.2e-06, + "rb73": 3e-08, + "rb74": 0.064776, + "rb75": 19.0, + "rb76": 36.5, + "rb77": 226.2, + "rb78": 1059.6, + "rb78_m1": 344.4, + "rb79": 1374.0, + "rb80": 34.0, + "rb81": 16459.2, + "rb81_m1": 1830.0, + "rb82": 75.45, + "rb82_m1": 23299.2, + "rb83": 7447680.0, + "rb84": 2835648.0, + "rb84_m1": 1215.6, + "rb86": 1609718.0, + "rb86_m1": 61.02, + "rb87": 1.51792e18, + "rb88": 1066.38, + "rb89": 909.0, + "rb90": 158.0, + "rb90_m1": 258.0, + "rb91": 58.4, + "rb92": 4.492, + "rb93": 5.84, + "rb94": 2.702, + "rb95": 0.3777, + "rb96": 0.203, + "rb97": 0.1691, + "rb98": 0.114, + "rb98_m1": 0.096, + "rb99": 0.054, + "rb100": 0.051, + "rb101": 0.032, + "rb102": 0.037, + "sr73": 0.025, + "sr74": 1.2e-06, + "sr75": 0.088, + "sr76": 7.89, + "sr77": 9.0, + "sr78": 150.0, + "sr79": 135.0, + "sr80": 6378.0, + "sr81": 1338.0, + "sr82": 2190240.0, + "sr83": 116676.0, + "sr83_m1": 4.95, + "sr85": 5602176.0, + "sr85_m1": 4057.8, + "sr87_m1": 10134.0, + "sr89": 4365792.0, + "sr90": 908543300.0, + "sr91": 34668.0, + "sr92": 9756.0, + "sr93": 445.38, + "sr94": 75.3, + "sr95": 23.9, + "sr96": 1.07, + "sr97": 0.429, + "sr98": 0.653, + "sr99": 0.27, + "sr100": 0.202, + "sr101": 0.118, + "sr102": 0.069, + "sr103": 0.068, + "sr104": 0.043, + "sr105": 0.0556, + "y76": 2e-07, + "y77": 0.062, + "y78": 0.05, + "y78_m1": 5.7, + "y79": 14.8, + "y80": 30.1, + "y80_m1": 4.8, + "y81": 70.4, + "y82": 8.3, + "y83": 424.8, + "y83_m1": 171.0, + "y84": 2370.0, + "y84_m1": 4.6, + "y85": 9648.0, + "y85_m1": 17496.0, + "y86": 53064.0, + "y86_m1": 2880.0, + "y87": 287280.0, + "y87_m1": 48132.0, + "y88": 9212486.0, + "y88_m1": 0.000301, + "y88_m2": 0.01397, + "y89_m1": 15.663, + "y90": 230400.0, + "y90_m1": 11484.0, + "y91": 5055264.0, + "y91_m1": 2982.6, + "y92": 12744.0, + "y93": 36648.0, + "y93_m1": 0.82, + "y94": 1122.0, + "y95": 618.0, + "y96": 5.34, + "y96_m1": 9.6, + "y97": 3.75, + "y97_m1": 1.17, + "y97_m2": 0.142, + "y98": 0.548, + "y98_m1": 2.0, + "y99": 1.47, + "y100": 0.735, + "y100_m1": 0.94, + "y101": 0.45, + "y102": 0.36, + "y102_m1": 0.298, + "y103": 0.23, + "y104": 0.18, + "y105": 0.088, + "y106": 0.066, + "y107": 0.03, + "y108": 0.048, + "zr78": 2e-07, + "zr79": 0.056, + "zr80": 4.6, + "zr81": 5.5, + "zr82": 32.0, + "zr83": 41.6, + "zr84": 1554.0, + "zr85": 471.6, + "zr85_m1": 10.9, + "zr86": 59400.0, + "zr87": 6048.0, + "zr87_m1": 14.0, + "zr88": 7205760.0, + "zr89": 282276.0, + "zr89_m1": 249.66, + "zr90_m1": 0.8092, + "zr93": 48283100000000.0, + "zr95": 5532365.0, + "zr96": 6.31152e26, + "zr97": 60296.4, + "zr98": 30.7, + "zr99": 2.1, + "zr100": 7.1, + "zr101": 2.3, + "zr102": 2.9, + "zr103": 1.3, + "zr104": 1.2, + "zr105": 0.6, + "zr106": 0.27, + "zr107": 0.15, + "zr108": 0.08, + "zr109": 0.117, + "zr110": 0.098, + "nb81": 0.8, + "nb82": 0.05, + "nb83": 4.1, + "nb84": 9.8, + "nb85": 20.9, + "nb85_m1": 3.3, + "nb86": 88.0, + "nb87": 225.0, + "nb87_m1": 156.0, + "nb88": 873.0, + "nb88_m1": 466.8, + "nb89": 7308.0, + "nb89_m1": 3960.0, + "nb90": 52560.0, + "nb90_m1": 18.81, + "nb90_m2": 0.00619, + "nb91": 21459200000.0, + "nb91_m1": 5258304.0, + "nb92": 1095050000000000.0, + "nb92_m1": 876960.0, + "nb93_m1": 509024100.0, + "nb94": 640619000000.0, + "nb94_m1": 375.78, + "nb95": 3023222.0, + "nb95_m1": 311904.0, + "nb96": 84060.0, + "nb97": 4326.0, + "nb97_m1": 58.7, + "nb98": 2.86, + "nb98_m1": 3078.0, + "nb99": 15.0, + "nb99_m1": 150.0, + "nb100": 1.5, + "nb100_m1": 2.99, + "nb101": 7.1, + "nb102": 4.3, + "nb102_m1": 1.3, + "nb103": 1.5, + "nb104": 4.9, + "nb104_m1": 0.94, + "nb105": 2.95, + "nb106": 0.93, + "nb107": 0.3, + "nb108": 0.193, + "nb109": 0.19, + "nb110": 0.17, + "nb111": 0.08, + "nb112": 0.069, + "nb113": 0.03, + "mo83": 0.0195, + "mo84": 3.8, + "mo85": 3.2, + "mo86": 19.6, + "mo87": 14.02, + "mo88": 480.0, + "mo89": 126.6, + "mo89_m1": 0.19, + "mo90": 20412.0, + "mo91": 929.4, + "mo91_m1": 64.6, + "mo93": 126230000000.0, + "mo93_m1": 24660.0, + "mo99": 237513.6, + "mo100": 2.3037e26, + "mo101": 876.6, + "mo102": 678.0, + "mo103": 67.5, + "mo104": 60.0, + "mo105": 35.6, + "mo106": 8.73, + "mo107": 3.5, + "mo108": 1.09, + "mo109": 0.53, + "mo110": 0.3, + "mo111": 0.2, + "mo112": 0.287, + "mo113": 0.1, + "mo114": 0.08, + "mo115": 0.092, + "tc85": 0.5, + "tc86": 0.054, + "tc86_m1": 1.1e-06, + "tc87": 2.2, + "tc88": 5.8, + "tc88_m1": 6.4, + "tc89": 12.8, + "tc89_m1": 12.9, + "tc90": 8.7, + "tc90_m1": 49.2, + "tc91": 188.4, + "tc91_m1": 198.0, + "tc92": 255.0, + "tc93": 9900.0, + "tc93_m1": 2610.0, + "tc94": 17580.0, + "tc94_m1": 3120.0, + "tc95": 72000.0, + "tc95_m1": 5270400.0, + "tc96": 369792.0, + "tc96_m1": 3090.0, + "tc97": 132857000000000.0, + "tc97_m1": 7862400.0, + "tc98": 132542000000000.0, + "tc99": 6661810000000.0, + "tc99_m1": 21624.12, + "tc100": 15.46, + "tc101": 852.0, + "tc102": 5.28, + "tc102_m1": 261.0, + "tc103": 54.2, + "tc104": 1098.0, + "tc105": 456.0, + "tc106": 35.6, + "tc107": 21.2, + "tc108": 5.17, + "tc109": 0.86, + "tc110": 0.92, + "tc111": 0.29, + "tc112": 0.28, + "tc113": 0.16, + "tc114": 0.15, + "tc115": 0.073, + "tc116": 0.09, + "tc117": 0.04, + "tc118": 0.066, + "ru87": 1.5e-06, + "ru88": 1.25, + "ru89": 1.5, + "ru90": 11.7, + "ru91": 7.9, + "ru91_m1": 7.6, + "ru92": 219.0, + "ru93": 59.7, + "ru93_m1": 10.8, + "ru94": 3108.0, + "ru95": 5914.8, + "ru97": 244512.0, + "ru103": 3390941.0, + "ru103_m1": 0.00169, + "ru105": 15984.0, + "ru106": 32123520.0, + "ru107": 225.0, + "ru108": 273.0, + "ru109": 34.5, + "ru110": 11.6, + "ru111": 2.12, + "ru112": 1.75, + "ru113": 0.8, + "ru113_m1": 0.51, + "ru114": 0.52, + "ru115": 0.74, + "ru116": 0.204, + "ru117": 0.142, + "ru118": 0.123, + "ru119": 0.162, + "ru120": 0.149, + "rh89": 1.5e-06, + "rh90": 0.0145, + "rh90_m1": 1.05, + "rh91": 1.47, + "rh92": 4.66, + "rh93": 11.9, + "rh94": 70.6, + "rh94_m1": 25.8, + "rh95": 301.2, + "rh95_m1": 117.6, + "rh96": 594.0, + "rh96_m1": 90.6, + "rh97": 1842.0, + "rh97_m1": 2772.0, + "rh98": 523.2, + "rh98_m1": 216.0, + "rh99": 1391040.0, + "rh99_m1": 16920.0, + "rh100": 74880.0, + "rh100_m1": 276.0, + "rh101": 104140100.0, + "rh101_m1": 374976.0, + "rh102": 17910720.0, + "rh102_m1": 118088500.0, + "rh103_m1": 3366.84, + "rh104": 42.3, + "rh104_m1": 260.4, + "rh105": 127296.0, + "rh105_m1": 40.0, + "rh106": 30.07, + "rh106_m1": 7860.0, + "rh107": 1302.0, + "rh108": 16.8, + "rh108_m1": 360.0, + "rh109": 80.0, + "rh110": 3.2, + "rh110_m1": 28.5, + "rh111": 11.0, + "rh112": 2.1, + "rh112_m1": 6.73, + "rh113": 2.8, + "rh114": 1.85, + "rh115": 0.99, + "rh116": 0.68, + "rh116_m1": 0.57, + "rh117": 0.44, + "rh118": 0.266, + "rh119": 0.171, + "rh120": 0.136, + "rh121": 0.151, + "rh122": 0.108, + "rh123": 0.0489, + "pd91": 1e-06, + "pd92": 0.8, + "pd93": 1.3, + "pd94": 9.0, + "pd95": 10.0, + "pd95_m1": 13.3, + "pd96": 122.0, + "pd97": 186.0, + "pd98": 1062.0, + "pd99": 1284.0, + "pd100": 313632.0, + "pd101": 30492.0, + "pd103": 1468022.0, + "pd107": 205124000000000.0, + "pd107_m1": 21.3, + "pd109": 49324.32, + "pd109_m1": 281.4, + "pd111": 1404.0, + "pd111_m1": 19800.0, + "pd112": 75708.0, + "pd113": 93.0, + "pd113_m1": 0.3, + "pd114": 145.2, + "pd115": 25.0, + "pd115_m1": 50.0, + "pd116": 11.8, + "pd117": 4.3, + "pd117_m1": 0.0191, + "pd118": 1.9, + "pd119": 0.92, + "pd120": 0.5, + "pd121": 0.285, + "pd122": 0.175, + "pd123": 0.244, + "pd124": 0.038, + "pd125": 0.3987, + "pd126": 0.2499, + "ag93": 1.5e-06, + "ag94": 0.035, + "ag94_m1": 0.55, + "ag94_m2": 0.4, + "ag95": 2.0, + "ag95_m1": 0.5, + "ag95_m2": 0.016, + "ag95_m3": 0.04, + "ag96": 4.4, + "ag96_m1": 6.9, + "ag97": 25.5, + "ag98": 47.5, + "ag99": 124.0, + "ag99_m1": 10.5, + "ag100": 120.6, + "ag100_m1": 134.4, + "ag101": 666.0, + "ag101_m1": 3.1, + "ag102": 774.0, + "ag102_m1": 462.0, + "ag103": 3942.0, + "ag103_m1": 5.7, + "ag104": 4152.0, + "ag104_m1": 2010.0, + "ag105": 3567456.0, + "ag105_m1": 433.8, + "ag106": 1437.6, + "ag106_m1": 715392.0, + "ag107_m1": 44.3, + "ag108": 142.92, + "ag108_m1": 13822200000.0, + "ag109_m1": 39.6, + "ag110": 24.6, + "ag110_m1": 21579260.0, + "ag111": 643680.0, + "ag111_m1": 64.8, + "ag112": 11268.0, + "ag113": 19332.0, + "ag113_m1": 68.7, + "ag114": 4.6, + "ag114_m1": 0.0015, + "ag115": 1200.0, + "ag115_m1": 18.0, + "ag116": 237.0, + "ag116_m1": 20.0, + "ag116_m2": 9.3, + "ag117": 72.8, + "ag117_m1": 5.34, + "ag118": 3.76, + "ag118_m1": 2.0, + "ag119": 2.1, + "ag119_m1": 6.0, + "ag120": 1.23, + "ag120_m1": 0.32, + "ag121": 0.78, + "ag122": 0.529, + "ag122_m1": 0.2, + "ag123": 0.3, + "ag124": 0.172, + "ag125": 0.166, + "ag126": 0.107, + "ag127": 0.109, + "ag128": 0.058, + "ag129": 0.046, + "ag130": 0.05, + "cd95": 0.005, + "cd96": 1.0, + "cd97": 2.8, + "cd98": 9.2, + "cd99": 16.0, + "cd100": 49.1, + "cd101": 81.6, + "cd102": 330.0, + "cd103": 438.0, + "cd104": 3462.0, + "cd105": 3330.0, + "cd107": 23400.0, + "cd109": 39864960.0, + "cd111_m1": 2912.4, + "cd113": 2.53723e23, + "cd113_m1": 444962200.0, + "cd115": 192456.0, + "cd115_m1": 3849984.0, + "cd116": 9.78286e26, + "cd117": 8964.0, + "cd117_m1": 12096.0, + "cd118": 3018.0, + "cd119": 161.4, + "cd119_m1": 132.0, + "cd120": 50.8, + "cd121": 13.5, + "cd121_m1": 8.3, + "cd122": 5.24, + "cd123": 2.1, + "cd123_m1": 1.82, + "cd124": 1.25, + "cd125": 0.68, + "cd125_m1": 0.48, + "cd126": 0.515, + "cd127": 0.37, + "cd128": 0.28, + "cd129": 0.27, + "cd130": 0.162, + "cd131": 0.068, + "cd132": 0.097, + "in97": 0.005, + "in98": 0.0425, + "in98_m1": 1.6, + "in99": 3.05, + "in100": 5.9, + "in101": 15.1, + "in102": 23.3, + "in103": 65.0, + "in103_m1": 34.0, + "in104": 108.0, + "in104_m1": 15.7, + "in105": 304.2, + "in105_m1": 48.0, + "in106": 372.0, + "in106_m1": 312.0, + "in107": 1944.0, + "in107_m1": 50.4, + "in108": 3480.0, + "in108_m1": 2376.0, + "in109": 15001.2, + "in109_m1": 80.4, + "in109_m2": 0.209, + "in110": 17640.0, + "in110_m1": 4146.0, + "in111": 242326.1, + "in111_m1": 462.0, + "in112": 898.2, + "in112_m1": 1233.6, + "in113_m1": 5968.56, + "in114": 71.9, + "in114_m1": 4277664.0, + "in114_m2": 0.0431, + "in115": 1.39169e22, + "in115_m1": 16149.6, + "in116": 14.1, + "in116_m1": 3257.4, + "in116_m2": 2.18, + "in117": 2592.0, + "in117_m1": 6972.0, + "in118": 5.0, + "in118_m1": 267.0, + "in118_m2": 8.5, + "in119": 144.0, + "in119_m1": 1080.0, + "in120": 3.08, + "in120_m1": 46.2, + "in120_m2": 47.3, + "in121": 23.1, + "in121_m1": 232.8, + "in122": 1.5, + "in122_m1": 10.3, + "in122_m2": 10.8, + "in123": 6.17, + "in123_m1": 47.4, + "in124": 3.12, + "in124_m1": 3.7, + "in125": 2.36, + "in125_m1": 12.2, + "in126": 1.53, + "in126_m1": 1.64, + "in127": 1.09, + "in127_m1": 3.67, + "in128": 0.84, + "in128_m1": 0.72, + "in129": 0.61, + "in129_m1": 1.23, + "in130": 0.29, + "in130_m1": 0.54, + "in130_m2": 0.54, + "in131": 0.28, + "in131_m1": 0.35, + "in131_m2": 0.32, + "in132": 0.207, + "in133": 0.165, + "in133_m1": 0.18, + "in134": 0.14, + "in135": 0.092, + "sn99": 0.005, + "sn100": 0.86, + "sn101": 1.7, + "sn102": 4.5, + "sn103": 7.0, + "sn104": 20.8, + "sn105": 34.0, + "sn106": 115.0, + "sn107": 174.0, + "sn108": 618.0, + "sn109": 1080.0, + "sn110": 14796.0, + "sn111": 2118.0, + "sn113": 9943776.0, + "sn113_m1": 1284.0, + "sn117_m1": 1175040.0, + "sn119_m1": 25315200.0, + "sn121": 97308.0, + "sn121_m1": 1385380000.0, + "sn123": 11162880.0, + "sn123_m1": 2403.6, + "sn125": 832896.0, + "sn125_m1": 571.2, + "sn126": 7258250000000.0, + "sn127": 7560.0, + "sn127_m1": 247.8, + "sn128": 3544.2, + "sn128_m1": 6.5, + "sn129": 133.8, + "sn129_m1": 414.0, + "sn130": 223.2, + "sn130_m1": 102.0, + "sn131": 56.0, + "sn131_m1": 58.4, + "sn132": 39.7, + "sn133": 1.46, + "sn134": 1.05, + "sn135": 0.53, + "sn136": 0.25, + "sn137": 0.19, + "sb103": 1.5e-06, + "sb104": 0.46, + "sb105": 1.22, + "sb106": 0.6, + "sb107": 4.0, + "sb108": 7.4, + "sb109": 17.0, + "sb110": 23.0, + "sb111": 75.0, + "sb112": 51.4, + "sb113": 400.2, + "sb114": 209.4, + "sb115": 1926.0, + "sb116": 948.0, + "sb116_m1": 3618.0, + "sb117": 10080.0, + "sb118": 216.0, + "sb118_m1": 18000.0, + "sb119": 137484.0, + "sb119_m1": 0.85, + "sb120": 953.4, + "sb120_m1": 497664.0, + "sb122": 235336.3, + "sb122_m1": 251.46, + "sb124": 5201280.0, + "sb124_m1": 93.0, + "sb124_m2": 1212.0, + "sb125": 87053530.0, + "sb126": 1067040.0, + "sb126_m1": 1149.0, + "sb126_m2": 11.0, + "sb127": 332640.0, + "sb128": 32436.0, + "sb128_m1": 624.0, + "sb129": 15840.0, + "sb129_m1": 1062.0, + "sb130": 2370.0, + "sb130_m1": 378.0, + "sb131": 1381.8, + "sb132": 167.4, + "sb132_m1": 246.0, + "sb133": 150.0, + "sb134": 0.78, + "sb134_m1": 10.07, + "sb135": 1.679, + "sb136": 0.923, + "sb137": 0.45, + "sb138": 0.168, + "sb139": 0.127, + "te105": 6.2e-07, + "te106": 6e-05, + "te107": 0.0031, + "te108": 2.1, + "te109": 4.6, + "te110": 18.6, + "te111": 19.3, + "te112": 120.0, + "te113": 102.0, + "te114": 912.0, + "te115": 348.0, + "te115_m1": 402.0, + "te116": 8964.0, + "te117": 3720.0, + "te117_m1": 0.103, + "te118": 518400.0, + "te119": 57780.0, + "te119_m1": 406080.0, + "te121": 1656288.0, + "te121_m1": 14186880.0, + "te123_m1": 10298880.0, + "te125_m1": 4959360.0, + "te127": 33660.0, + "te127_m1": 9417600.0, + "te128": 2.77707e26, + "te129": 4176.0, + "te129_m1": 2903040.0, + "te131": 1500.0, + "te131_m1": 119700.0, + "te132": 276825.6, + "te133": 750.0, + "te133_m1": 3324.0, + "te134": 2508.0, + "te135": 19.0, + "te136": 17.5, + "te137": 2.49, + "te138": 1.4, + "te139": 0.347, + "te140": 0.304, + "te141": 0.213, + "te142": 0.2, + "i108": 0.036, + "i109": 0.000103, + "i110": 0.65, + "i111": 2.5, + "i112": 3.42, + "i113": 6.6, + "i114": 2.1, + "i114_m1": 6.2, + "i115": 78.0, + "i116": 2.91, + "i117": 133.2, + "i118": 822.0, + "i118_m1": 510.0, + "i119": 1146.0, + "i120": 4896.0, + "i120_m1": 3180.0, + "i121": 7632.0, + "i122": 217.8, + "i123": 47604.24, + "i124": 360806.4, + "i125": 5132160.0, + "i126": 1117152.0, + "i128": 1499.4, + "i129": 495454000000000.0, + "i130": 44496.0, + "i130_m1": 530.4, + "i131": 693377.3, + "i132": 8262.0, + "i132_m1": 4993.2, + "i133": 74880.0, + "i133_m1": 9.0, + "i134": 3150.0, + "i134_m1": 211.2, + "i135": 23652.0, + "i136": 83.4, + "i136_m1": 46.9, + "i137": 24.5, + "i138": 6.23, + "i139": 2.28, + "i140": 0.86, + "i141": 0.43, + "i142": 0.222, + "i143": 0.296, + "i144": 0.194, + "i145": 0.127, + "xe110": 0.093, + "xe111": 0.81, + "xe112": 2.7, + "xe113": 2.74, + "xe114": 10.0, + "xe115": 18.0, + "xe116": 59.0, + "xe117": 61.0, + "xe118": 228.0, + "xe119": 348.0, + "xe120": 2400.0, + "xe121": 2406.0, + "xe122": 72360.0, + "xe123": 7488.0, + "xe125": 60840.0, + "xe125_m1": 56.9, + "xe127": 3144960.0, + "xe127_m1": 69.2, + "xe129_m1": 767232.0, + "xe131_m1": 1022976.0, + "xe132_m1": 0.00839, + "xe133": 452995.2, + "xe133_m1": 189216.0, + "xe134_m1": 0.29, + "xe135": 32904.0, + "xe135_m1": 917.4, + "xe137": 229.08, + "xe138": 844.8, + "xe139": 39.68, + "xe140": 13.6, + "xe141": 1.73, + "xe142": 1.23, + "xe143": 0.3, + "xe144": 1.15, + "xe145": 0.188, + "xe146": 0.369, + "xe147": 0.1, + "cs112": 0.0005, + "cs113": 1.67e-05, + "cs114": 0.57, + "cs115": 1.4, + "cs116": 0.7, + "cs116_m1": 3.85, + "cs117": 8.4, + "cs117_m1": 6.5, + "cs118": 14.0, + "cs118_m1": 17.0, + "cs119": 43.0, + "cs119_m1": 30.4, + "cs120": 61.3, + "cs120_m1": 57.0, + "cs121": 155.0, + "cs121_m1": 122.0, + "cs122": 21.18, + "cs122_m1": 0.36, + "cs122_m2": 222.0, + "cs123": 352.8, + "cs123_m1": 1.64, + "cs124": 30.8, + "cs124_m1": 6.3, + "cs125": 2802.0, + "cs125_m1": 0.0009, + "cs126": 98.4, + "cs127": 22500.0, + "cs128": 217.2, + "cs129": 115416.0, + "cs130": 1752.6, + "cs130_m1": 207.6, + "cs131": 837129.6, + "cs132": 559872.0, + "cs134": 65172760.0, + "cs134_m1": 10483.2, + "cs135": 72582500000000.0, + "cs135_m1": 3180.0, + "cs136": 1137024.0, + "cs136_m1": 19.0, + "cs137": 949252600.0, + "cs138": 2004.6, + "cs138_m1": 174.6, + "cs139": 556.2, + "cs140": 63.7, + "cs141": 24.84, + "cs142": 1.684, + "cs143": 1.791, + "cs144": 0.994, + "cs144_m1": 1.0, + "cs145": 0.587, + "cs146": 0.321, + "cs147": 0.23, + "cs148": 0.146, + "cs149": 0.05, + "cs150": 0.05, + "cs151": 0.05, + "ba114": 0.43, + "ba115": 0.45, + "ba116": 1.3, + "ba117": 1.75, + "ba118": 5.5, + "ba119": 5.4, + "ba120": 24.0, + "ba121": 29.7, + "ba122": 117.0, + "ba123": 162.0, + "ba124": 660.0, + "ba125": 210.0, + "ba126": 6000.0, + "ba127": 762.0, + "ba127_m1": 1.9, + "ba128": 209952.0, + "ba129": 8028.0, + "ba129_m1": 7776.0, + "ba130_m1": 0.0094, + "ba131": 993600.0, + "ba131_m1": 876.0, + "ba133": 331862400.0, + "ba133_m1": 140040.0, + "ba135_m1": 103320.0, + "ba136_m1": 0.3084, + "ba137_m1": 153.12, + "ba139": 4983.6, + "ba140": 1101833.0, + "ba141": 1096.2, + "ba142": 636.0, + "ba143": 14.5, + "ba144": 11.5, + "ba145": 4.31, + "ba146": 2.22, + "ba147": 0.894, + "ba148": 0.612, + "ba149": 0.344, + "ba150": 0.3, + "ba151": 0.259, + "ba152": 0.228, + "ba153": 0.158, + "la117": 0.0235, + "la117_m1": 0.01, + "la118": 1.0, + "la119": 2.0, + "la120": 2.8, + "la121": 5.3, + "la122": 8.6, + "la123": 17.0, + "la124": 29.21, + "la124_m1": 21.0, + "la125": 64.8, + "la125_m1": 0.4, + "la126": 54.0, + "la126_m1": 50.0, + "la127": 306.0, + "la127_m1": 222.0, + "la128": 310.8, + "la128_m1": 60.0, + "la129": 696.0, + "la129_m1": 0.56, + "la130": 522.0, + "la131": 3540.0, + "la132": 17280.0, + "la132_m1": 1458.0, + "la133": 14083.2, + "la134": 387.0, + "la135": 70200.0, + "la136": 592.2, + "la136_m1": 0.114, + "la137": 1893460000000.0, + "la138": 3.21888e18, + "la140": 145026.7, + "la141": 14112.0, + "la142": 5466.0, + "la143": 852.0, + "la144": 40.8, + "la145": 24.8, + "la146": 6.27, + "la146_m1": 10.0, + "la147": 4.06, + "la148": 1.26, + "la149": 1.05, + "la150": 0.86, + "la151": 0.778, + "la152": 0.451, + "la153": 0.342, + "la154": 0.228, + "la155": 0.184, + "ce119": 0.2, + "ce120": 0.25, + "ce121": 1.1, + "ce122": 2.73, + "ce123": 3.8, + "ce124": 6.0, + "ce125": 10.2, + "ce126": 51.0, + "ce127": 31.0, + "ce127_m1": 28.6, + "ce128": 235.8, + "ce129": 210.0, + "ce130": 1374.0, + "ce131": 618.0, + "ce131_m1": 324.0, + "ce132": 12636.0, + "ce132_m1": 0.0094, + "ce133": 5820.0, + "ce133_m1": 17640.0, + "ce134": 273024.0, + "ce135": 63720.0, + "ce135_m1": 20.0, + "ce137": 32400.0, + "ce137_m1": 123840.0, + "ce138_m1": 0.00865, + "ce139": 11892180.0, + "ce139_m1": 54.8, + "ce141": 2808691.0, + "ce143": 118940.4, + "ce144": 24616220.0, + "ce145": 180.6, + "ce146": 811.2, + "ce147": 56.4, + "ce148": 56.0, + "ce149": 5.3, + "ce150": 4.0, + "ce151": 1.76, + "ce152": 1.4, + "ce153": 0.979, + "ce154": 0.775, + "ce155": 0.471, + "ce156": 0.369, + "ce157": 0.2428, + "pr121": 1.4, + "pr122": 0.5, + "pr123": 0.8, + "pr124": 1.2, + "pr125": 3.3, + "pr126": 3.14, + "pr127": 4.2, + "pr128": 2.85, + "pr129": 32.0, + "pr130": 40.0, + "pr131": 90.6, + "pr131_m1": 5.73, + "pr132": 96.0, + "pr133": 390.0, + "pr134": 1020.0, + "pr134_m1": 660.0, + "pr135": 1440.0, + "pr136": 786.0, + "pr137": 4608.0, + "pr138": 87.0, + "pr138_m1": 7632.0, + "pr139": 15876.0, + "pr140": 203.4, + "pr142": 68832.0, + "pr142_m1": 876.0, + "pr143": 1172448.0, + "pr144": 1036.8, + "pr144_m1": 432.0, + "pr145": 21542.4, + "pr146": 1449.0, + "pr147": 804.0, + "pr148": 137.4, + "pr148_m1": 120.6, + "pr149": 135.6, + "pr150": 6.19, + "pr151": 18.9, + "pr152": 3.63, + "pr153": 4.28, + "pr154": 2.3, + "pr155": 0.852, + "pr156": 0.733, + "pr157": 0.598, + "pr158": 0.1342, + "pr159": 0.1055, + "nd124": 0.5, + "nd125": 0.6, + "nd126": 2e-07, + "nd127": 1.8, + "nd128": 5.0, + "nd129": 4.9, + "nd130": 21.0, + "nd131": 26.0, + "nd132": 94.0, + "nd133": 70.0, + "nd133_m1": 70.0, + "nd134": 510.0, + "nd135": 744.0, + "nd135_m1": 330.0, + "nd136": 3039.0, + "nd137": 2310.0, + "nd137_m1": 1.6, + "nd138": 18144.0, + "nd139": 1782.0, + "nd139_m1": 19800.0, + "nd140": 291168.0, + "nd141": 8964.0, + "nd141_m1": 62.0, + "nd144": 7.22669e22, + "nd147": 948672.0, + "nd149": 6220.8, + "nd150": 2.49305e26, + "nd151": 746.4, + "nd152": 684.0, + "nd153": 31.6, + "nd154": 25.9, + "nd155": 8.9, + "nd156": 5.49, + "nd157": 1.906, + "nd158": 1.331, + "nd159": 0.773, + "nd160": 0.5883, + "nd161": 0.4884, + "pm126": 0.5, + "pm127": 1.0, + "pm128": 1.0, + "pm129": 2.4, + "pm130": 2.6, + "pm131": 6.3, + "pm132": 6.2, + "pm133": 15.0, + "pm133_m1": 8.8, + "pm134": 5.0, + "pm134_m1": 22.0, + "pm135": 49.0, + "pm135_m1": 45.0, + "pm136": 47.0, + "pm136_m1": 107.0, + "pm137": 144.0, + "pm138": 10.0, + "pm138_m1": 194.4, + "pm139": 249.0, + "pm139_m1": 0.18, + "pm140": 357.0, + "pm140_m1": 357.0, + "pm141": 1254.0, + "pm142": 40.5, + "pm142_m1": 0.002, + "pm143": 22896000.0, + "pm144": 31363200.0, + "pm145": 558569500.0, + "pm146": 174513500.0, + "pm147": 82788210.0, + "pm148": 463795.2, + "pm148_m1": 3567456.0, + "pm149": 191088.0, + "pm150": 9648.0, + "pm151": 102240.0, + "pm152": 247.2, + "pm152_m1": 451.2, + "pm152_m2": 828.0, + "pm153": 315.0, + "pm154": 103.8, + "pm154_m1": 160.8, + "pm155": 41.5, + "pm156": 26.7, + "pm157": 10.56, + "pm158": 4.8, + "pm159": 1.47, + "pm160": 1.561, + "pm161": 1.065, + "pm162": 0.2679, + "pm163": 0.2, + "sm128": 0.5, + "sm129": 0.55, + "sm130": 1.0, + "sm131": 1.2, + "sm132": 4.0, + "sm133": 3.7, + "sm134": 9.5, + "sm135": 10.3, + "sm136": 47.0, + "sm137": 45.0, + "sm138": 186.0, + "sm139": 154.2, + "sm139_m1": 10.7, + "sm140": 889.2, + "sm141": 612.0, + "sm141_m1": 1356.0, + "sm142": 4349.4, + "sm143": 525.0, + "sm143_m1": 66.0, + "sm143_m2": 0.03, + "sm145": 29376000.0, + "sm146": 3250430000000000.0, + "sm147": 3.34511e18, + "sm148": 2.20903e23, + "sm151": 2840184000.0, + "sm153": 167400.0, + "sm153_m1": 0.0106, + "sm155": 1338.0, + "sm156": 33840.0, + "sm157": 482.0, + "sm158": 318.0, + "sm159": 11.37, + "sm160": 9.6, + "sm161": 4.8, + "sm162": 2.4, + "sm163": 1.748, + "sm164": 1.226, + "sm165": 0.764, + "eu130": 0.001, + "eu131": 0.0178, + "eu132": 0.1, + "eu133": 1.0, + "eu134": 0.5, + "eu135": 1.5, + "eu136": 3.8, + "eu136_m1": 3.3, + "eu136_m2": 3.8, + "eu137": 11.0, + "eu138": 12.1, + "eu139": 17.9, + "eu140": 1.51, + "eu140_m1": 0.125, + "eu141": 40.7, + "eu141_m1": 2.7, + "eu142": 2.34, + "eu142_m1": 73.38, + "eu143": 155.4, + "eu144": 10.2, + "eu145": 512352.0, + "eu146": 396576.0, + "eu147": 2082240.0, + "eu148": 4708800.0, + "eu149": 8043840.0, + "eu150": 1164480000.0, + "eu150_m1": 46080.0, + "eu152": 427195200.0, + "eu152_m1": 33521.76, + "eu152_m2": 5760.0, + "eu154": 271426900.0, + "eu154_m1": 2760.0, + "eu155": 149993300.0, + "eu156": 1312416.0, + "eu157": 54648.0, + "eu158": 2754.0, + "eu159": 1086.0, + "eu160": 38.0, + "eu161": 26.0, + "eu162": 10.6, + "eu163": 7.7, + "eu164": 2.844, + "eu165": 2.3, + "eu166": 0.4, + "eu167": 0.2, + "gd134": 0.4, + "gd135": 1.1, + "gd136": 2e-05, + "gd137": 2.2, + "gd138": 4.7, + "gd139": 5.8, + "gd139_m1": 4.8, + "gd140": 15.8, + "gd141": 14.0, + "gd141_m1": 24.5, + "gd142": 70.2, + "gd143": 39.0, + "gd143_m1": 110.0, + "gd144": 268.2, + "gd145": 1380.0, + "gd145_m1": 85.0, + "gd146": 4170528.0, + "gd147": 137016.0, + "gd148": 2354197000.0, + "gd149": 801792.0, + "gd150": 56488100000000.0, + "gd151": 10713600.0, + "gd152": 3.40822e21, + "gd153": 20770560.0, + "gd155_m1": 0.03197, + "gd159": 66524.4, + "gd161": 219.6, + "gd162": 504.0, + "gd163": 68.0, + "gd164": 45.0, + "gd165": 10.3, + "gd166": 4.8, + "gd167": 3.0, + "gd168": 0.3, + "gd169": 1.0, + "tb135": 0.995, + "tb136": 0.2, + "tb137": 0.6, + "tb138": 2e-07, + "tb139": 1.6, + "tb140": 2.4, + "tb141": 3.5, + "tb141_m1": 7.9, + "tb142": 0.597, + "tb142_m1": 0.303, + "tb143": 12.0, + "tb143_m1": 21.0, + "tb144": 1.0, + "tb144_m1": 4.25, + "tb145": 30.9, + "tb145_m1": 30.9, + "tb146": 8.0, + "tb146_m1": 23.0, + "tb146_m2": 0.00118, + "tb147": 5904.0, + "tb147_m1": 109.8, + "tb148": 3600.0, + "tb148_m1": 132.0, + "tb149": 14824.8, + "tb149_m1": 249.6, + "tb150": 12528.0, + "tb150_m1": 348.0, + "tb151": 63392.4, + "tb151_m1": 25.0, + "tb152": 63000.0, + "tb152_m1": 252.0, + "tb153": 202176.0, + "tb154": 77400.0, + "tb154_m1": 33840.0, + "tb154_m2": 81720.0, + "tb155": 459648.0, + "tb156": 462240.0, + "tb156_m1": 87840.0, + "tb156_m2": 19080.0, + "tb157": 2240590000.0, + "tb158": 5680368000.0, + "tb158_m1": 10.7, + "tb160": 6246720.0, + "tb161": 596678.4, + "tb162": 456.0, + "tb163": 1170.0, + "tb164": 180.0, + "tb165": 126.6, + "tb166": 25.1, + "tb167": 19.4, + "tb168": 8.2, + "tb169": 2.0, + "tb170": 3.0, + "tb171": 0.5, + "dy138": 0.2, + "dy139": 0.6, + "dy140": 0.84, + "dy141": 0.9, + "dy142": 2.3, + "dy143": 3.2, + "dy143_m1": 3.0, + "dy144": 9.1, + "dy145": 6.0, + "dy145_m1": 14.1, + "dy146": 29.0, + "dy146_m1": 0.15, + "dy147": 40.0, + "dy147_m1": 55.7, + "dy148": 198.0, + "dy149": 252.0, + "dy149_m1": 0.49, + "dy150": 430.2, + "dy151": 1074.0, + "dy152": 8568.0, + "dy153": 23040.0, + "dy154": 94672800000000.0, + "dy155": 35640.0, + "dy157": 29304.0, + "dy157_m1": 0.0216, + "dy159": 12476160.0, + "dy165": 8402.4, + "dy165_m1": 75.42, + "dy166": 293760.0, + "dy167": 372.0, + "dy168": 522.0, + "dy169": 39.0, + "dy170": 30.0, + "dy171": 6.0, + "dy172": 3.0, + "dy173": 2.0, + "ho140": 0.006, + "ho141": 0.0041, + "ho142": 0.4, + "ho143": 2e-07, + "ho144": 0.7, + "ho145": 2.4, + "ho146": 3.6, + "ho147": 5.8, + "ho148": 2.2, + "ho148_m1": 9.59, + "ho148_m2": 0.00236, + "ho149": 21.1, + "ho149_m1": 56.0, + "ho150": 72.0, + "ho150_m1": 23.3, + "ho151": 35.2, + "ho151_m1": 47.2, + "ho152": 161.8, + "ho152_m1": 50.0, + "ho153": 120.6, + "ho153_m1": 558.0, + "ho154": 705.6, + "ho154_m1": 186.0, + "ho155": 2880.0, + "ho155_m1": 0.00088, + "ho156": 3360.0, + "ho156_m1": 9.5, + "ho156_m2": 468.0, + "ho157": 756.0, + "ho158": 678.0, + "ho158_m1": 1680.0, + "ho158_m2": 1278.0, + "ho159": 1983.0, + "ho159_m1": 8.3, + "ho160": 1536.0, + "ho160_m1": 18072.0, + "ho160_m2": 3.0, + "ho161": 8928.0, + "ho161_m1": 6.76, + "ho162": 900.0, + "ho162_m1": 4020.0, + "ho163": 144218000000.0, + "ho163_m1": 1.09, + "ho164": 1740.0, + "ho164_m1": 2250.0, + "ho166": 96480.0, + "ho166_m1": 37869100000.0, + "ho167": 11160.0, + "ho168": 179.4, + "ho168_m1": 132.0, + "ho169": 283.2, + "ho170": 165.6, + "ho170_m1": 43.0, + "ho171": 53.0, + "ho172": 25.0, + "ho173": 10.0, + "ho174": 8.0, + "ho175": 5.0, + "er143": 0.2, + "er144": 2e-07, + "er146": 1.7, + "er147": 2.5, + "er147_m1": 2.5, + "er148": 4.6, + "er149": 4.0, + "er149_m1": 8.9, + "er150": 18.5, + "er151": 23.5, + "er151_m1": 0.58, + "er152": 10.3, + "er153": 37.1, + "er154": 223.8, + "er155": 318.0, + "er156": 1170.0, + "er157": 1119.0, + "er157_m1": 0.076, + "er158": 8244.0, + "er159": 2160.0, + "er160": 102888.0, + "er161": 11556.0, + "er163": 4500.0, + "er165": 37296.0, + "er167_m1": 2.269, + "er169": 811468.8, + "er171": 27057.6, + "er172": 177480.0, + "er173": 84.0, + "er174": 192.0, + "er175": 72.0, + "er176": 20.0, + "er177": 3.0, + "tm145": 3.1e-06, + "tm146": 0.08, + "tm146_m1": 0.2, + "tm147": 0.58, + "tm148": 0.7, + "tm149": 0.9, + "tm150": 2.2, + "tm150_m1": 0.0052, + "tm151": 4.17, + "tm151_m1": 4.51e-07, + "tm152": 8.0, + "tm152_m1": 5.2, + "tm153": 1.48, + "tm153_m1": 2.5, + "tm154": 8.1, + "tm154_m1": 3.3, + "tm155": 21.6, + "tm155_m1": 45.0, + "tm156": 83.8, + "tm157": 217.8, + "tm158": 238.8, + "tm159": 547.8, + "tm160": 564.0, + "tm160_m1": 74.5, + "tm161": 1812.0, + "tm162": 1302.0, + "tm162_m1": 24.3, + "tm163": 6516.0, + "tm164": 120.0, + "tm164_m1": 306.0, + "tm165": 108216.0, + "tm166": 27720.0, + "tm166_m1": 0.34, + "tm167": 799200.0, + "tm168": 8043840.0, + "tm170": 11111040.0, + "tm171": 60590590.0, + "tm172": 228960.0, + "tm173": 29664.0, + "tm174": 324.0, + "tm175": 912.0, + "tm176": 114.0, + "tm177": 90.0, + "tm178": 30.0, + "tm179": 20.0, + "yb148": 0.25, + "yb149": 0.7, + "yb150": 2e-07, + "yb151": 1.6, + "yb151_m1": 1.6, + "yb152": 3.04, + "yb153": 4.2, + "yb154": 0.409, + "yb155": 1.793, + "yb156": 26.1, + "yb157": 38.6, + "yb158": 89.4, + "yb159": 100.2, + "yb160": 288.0, + "yb161": 252.0, + "yb162": 1132.2, + "yb163": 663.0, + "yb164": 4548.0, + "yb165": 594.0, + "yb166": 204120.0, + "yb167": 1050.0, + "yb169": 2766355.0, + "yb169_m1": 46.0, + "yb171_m1": 0.00525, + "yb175": 361584.0, + "yb175_m1": 0.0682, + "yb176_m1": 11.4, + "yb177": 6879.6, + "yb177_m1": 6.41, + "yb178": 4440.0, + "yb179": 480.0, + "yb180": 144.0, + "yb181": 60.0, + "lu150": 0.043, + "lu151": 0.0806, + "lu152": 0.7, + "lu153": 0.9, + "lu153_m1": 1.0, + "lu154": 2.0, + "lu154_m1": 1.12, + "lu155": 0.068, + "lu155_m1": 0.138, + "lu155_m2": 0.00269, + "lu156": 0.494, + "lu156_m1": 0.198, + "lu157": 6.8, + "lu157_m1": 4.79, + "lu158": 10.6, + "lu159": 12.1, + "lu160": 36.1, + "lu160_m1": 40.0, + "lu161": 77.0, + "lu161_m1": 0.0073, + "lu162": 82.2, + "lu162_m1": 90.0, + "lu162_m2": 114.0, + "lu163": 238.2, + "lu164": 188.4, + "lu165": 644.4, + "lu166": 159.0, + "lu166_m1": 84.6, + "lu166_m2": 127.2, + "lu167": 3090.0, + "lu167_m1": 60.0, + "lu168": 330.0, + "lu168_m1": 402.0, + "lu169": 122616.0, + "lu169_m1": 160.0, + "lu170": 173836.8, + "lu170_m1": 0.67, + "lu171": 711936.0, + "lu171_m1": 79.0, + "lu172": 578880.0, + "lu172_m1": 222.0, + "lu173": 43233910.0, + "lu174": 104455700.0, + "lu174_m1": 12268800.0, + "lu176": 1.18657e18, + "lu176_m1": 13086.0, + "lu177": 574300.8, + "lu177_m1": 13862020.0, + "lu177_m2": 390.0, + "lu178": 1704.0, + "lu178_m1": 1386.0, + "lu179": 16524.0, + "lu179_m1": 0.0031, + "lu180": 342.0, + "lu180_m1": 0.001, + "lu181": 210.0, + "lu182": 120.0, + "lu183": 58.0, + "lu184": 20.0, + "hf153": 6e-06, + "hf154": 2.0, + "hf155": 0.89, + "hf156": 0.023, + "hf157": 0.11, + "hf158": 2.85, + "hf159": 5.6, + "hf160": 13.6, + "hf161": 18.2, + "hf162": 39.4, + "hf163": 40.0, + "hf164": 111.0, + "hf165": 76.0, + "hf166": 406.2, + "hf167": 123.0, + "hf168": 1557.0, + "hf169": 194.4, + "hf170": 57636.0, + "hf171": 43560.0, + "hf171_m1": 29.5, + "hf172": 59012710.0, + "hf173": 84960.0, + "hf174": 6.31152e22, + "hf175": 6048000.0, + "hf177_m1": 1.09, + "hf177_m2": 3084.0, + "hf178_m1": 4.0, + "hf178_m2": 978285600.0, + "hf179_m1": 18.67, + "hf179_m2": 2164320.0, + "hf180_m1": 19800.0, + "hf181": 3662496.0, + "hf182": 280863000000000.0, + "hf182_m1": 3690.0, + "hf183": 3841.2, + "hf184": 14832.0, + "hf184_m1": 48.0, + "hf185": 210.0, + "hf186": 156.0, + "hf187": 30.0, + "hf188": 20.0, + "ta155": 0.0031, + "ta156": 0.144, + "ta156_m1": 0.36, + "ta157": 0.0101, + "ta157_m1": 0.0043, + "ta157_m2": 0.0017, + "ta158": 0.055, + "ta158_m1": 0.0367, + "ta159": 0.83, + "ta159_m1": 0.515, + "ta160": 1.55, + "ta160_m1": 1.7, + "ta161": 2.89, + "ta162": 3.57, + "ta163": 10.6, + "ta164": 14.2, + "ta165": 31.0, + "ta166": 34.4, + "ta167": 80.0, + "ta168": 120.0, + "ta169": 294.0, + "ta170": 405.6, + "ta171": 1398.0, + "ta172": 2208.0, + "ta173": 11304.0, + "ta174": 4104.0, + "ta175": 37800.0, + "ta176": 29124.0, + "ta176_m1": 0.0011, + "ta176_m2": 0.00097, + "ta177": 203616.0, + "ta178": 558.6, + "ta178_m1": 8496.0, + "ta178_m2": 0.058, + "ta179": 57434830.0, + "ta179_m1": 0.009, + "ta179_m2": 0.0541, + "ta180": 29354.4, + "ta182": 9913536.0, + "ta182_m1": 0.283, + "ta182_m2": 950.4, + "ta183": 440640.0, + "ta184": 31320.0, + "ta185": 2964.0, + "ta185_m1": 0.002, + "ta186": 630.0, + "ta187": 120.0, + "ta188": 20.0, + "ta189": 3.0, + "ta190": 0.3, + "w158": 0.00125, + "w159": 0.0073, + "w160": 0.091, + "w161": 0.409, + "w162": 1.36, + "w163": 2.8, + "w164": 6.3, + "w165": 5.1, + "w166": 19.2, + "w167": 19.9, + "w168": 53.0, + "w169": 74.0, + "w170": 145.2, + "w171": 142.8, + "w172": 396.0, + "w173": 456.0, + "w174": 1992.0, + "w175": 2112.0, + "w176": 9000.0, + "w177": 7920.0, + "w178": 1866240.0, + "w179": 2223.0, + "w179_m1": 384.0, + "w180": 5.68037e25, + "w180_m1": 0.00547, + "w181": 10471680.0, + "w183_m1": 5.2, + "w185": 6488640.0, + "w185_m1": 100.2, + "w186": 5.36e27, + "w186_m1": 0.003, + "w187": 86400.0, + "w188": 6028992.0, + "w189": 642.0, + "w190": 1800.0, + "w190_m1": 0.0031, + "w191": 20.0, + "w192": 10.0, + "re160": 0.00085, + "re161": 0.00037, + "re161_m1": 0.0156, + "re162": 0.107, + "re162_m1": 0.077, + "re163": 0.39, + "re163_m1": 0.214, + "re164": 0.53, + "re164_m1": 0.87, + "re165": 1.0, + "re165_m1": 2.1, + "re166": 2.25, + "re167": 5.9, + "re167_m1": 3.4, + "re168": 4.4, + "re169": 8.1, + "re169_m1": 15.1, + "re170": 9.2, + "re171": 15.2, + "re172": 55.0, + "re172_m1": 15.0, + "re173": 118.8, + "re174": 144.0, + "re175": 353.4, + "re176": 318.0, + "re177": 840.0, + "re178": 792.0, + "re179": 1170.0, + "re180": 146.4, + "re181": 71640.0, + "re182": 230400.0, + "re182_m1": 45720.0, + "re183": 6048000.0, + "re183_m1": 0.00104, + "re184": 3058560.0, + "re184_m1": 14601600.0, + "re186": 321261.1, + "re186_m1": 6311520000000.0, + "re187": 1.36644e18, + "re188": 61214.4, + "re188_m1": 1115.4, + "re189": 87480.0, + "re190": 186.0, + "re190_m1": 11520.0, + "re191": 588.0, + "re192": 16.0, + "re193": 51.9, + "re194": 1.0, + "os162": 0.00205, + "os163": 0.0055, + "os164": 0.021, + "os165": 0.071, + "os166": 0.199, + "os167": 0.81, + "os168": 2.1, + "os169": 3.43, + "os170": 7.37, + "os171": 8.3, + "os172": 19.2, + "os173": 22.4, + "os174": 44.0, + "os175": 84.0, + "os176": 216.0, + "os177": 180.0, + "os178": 300.0, + "os179": 390.0, + "os180": 1290.0, + "os181": 6300.0, + "os181_m1": 162.0, + "os182": 78624.0, + "os183": 46800.0, + "os183_m1": 35640.0, + "os185": 8087040.0, + "os186": 6.31152e22, + "os189_m1": 20916.0, + "os190_m1": 594.0, + "os191": 1330560.0, + "os191_m1": 47160.0, + "os192_m1": 5.9, + "os193": 108396.0, + "os194": 189345600.0, + "os195": 540.0, + "os196": 2094.0, + "ir164": 0.14, + "ir164_m1": 9.5e-05, + "ir165": 1e-06, + "ir166": 0.0105, + "ir166_m1": 0.0151, + "ir167": 0.0352, + "ir167_m1": 0.0257, + "ir168": 0.232, + "ir168_m1": 0.16, + "ir169": 0.64, + "ir169_m1": 0.281, + "ir170": 0.9, + "ir170_m1": 0.811, + "ir171": 3.5, + "ir171_m1": 1.4, + "ir172": 4.4, + "ir172_m1": 2.0, + "ir173": 9.0, + "ir173_m1": 2.2, + "ir174": 7.9, + "ir174_m1": 4.9, + "ir175": 9.0, + "ir176": 8.7, + "ir177": 30.0, + "ir178": 12.0, + "ir179": 79.0, + "ir180": 90.0, + "ir181": 294.0, + "ir182": 900.0, + "ir183": 3480.0, + "ir184": 11124.0, + "ir185": 51840.0, + "ir186": 59904.0, + "ir186_m1": 6840.0, + "ir187": 37800.0, + "ir187_m1": 0.0303, + "ir188": 149400.0, + "ir188_m1": 0.0042, + "ir189": 1140480.0, + "ir189_m1": 0.0133, + "ir189_m2": 0.0037, + "ir190": 1017792.0, + "ir190_m1": 4032.0, + "ir190_m2": 11113.2, + "ir191_m1": 4.899, + "ir191_m2": 5.5, + "ir192": 6378653.0, + "ir192_m1": 87.0, + "ir192_m2": 7605382000.0, + "ir193_m1": 909792.0, + "ir194": 69408.0, + "ir194_m1": 0.03185, + "ir194_m2": 14774400.0, + "ir195": 9000.0, + "ir195_m1": 13680.0, + "ir196": 52.0, + "ir196_m1": 5040.0, + "ir197": 348.0, + "ir197_m1": 534.0, + "ir198": 8.0, + "ir199": 6.5, + "pt166": 0.0003, + "pt167": 0.00078, + "pt168": 0.002, + "pt169": 0.007, + "pt170": 0.014, + "pt171": 0.051, + "pt172": 0.096, + "pt173": 0.382, + "pt174": 0.889, + "pt175": 2.53, + "pt176": 6.33, + "pt177": 10.6, + "pt178": 21.1, + "pt179": 21.2, + "pt180": 56.0, + "pt181": 52.0, + "pt182": 180.0, + "pt183": 390.0, + "pt183_m1": 43.0, + "pt184": 1038.0, + "pt184_m1": 0.00101, + "pt185": 4254.0, + "pt185_m1": 1980.0, + "pt186": 7488.0, + "pt187": 8460.0, + "pt188": 881280.0, + "pt189": 39132.0, + "pt190": 2.05124e19, + "pt191": 242092.8, + "pt193": 1577880000.0, + "pt193_m1": 374112.0, + "pt195_m1": 346464.0, + "pt197": 71609.4, + "pt197_m1": 5724.6, + "pt199": 1848.0, + "pt199_m1": 13.6, + "pt200": 45360.0, + "pt201": 150.0, + "pt202": 158400.0, + "au169": 0.00015, + "au170": 0.000291, + "au170_m1": 0.00062, + "au171": 1.9e-05, + "au171_m1": 0.00102, + "au172": 0.0047, + "au173": 0.025, + "au173_m1": 0.014, + "au174": 0.139, + "au174_m1": 0.1629, + "au175": 0.1, + "au175_m1": 0.156, + "au176": 1.05, + "au176_m1": 1.36, + "au177": 1.462, + "au177_m1": 1.18, + "au178": 2.6, + "au179": 3.3, + "au180": 8.1, + "au181": 13.7, + "au182": 15.6, + "au183": 42.8, + "au184": 20.6, + "au184_m1": 47.6, + "au185": 255.0, + "au186": 642.0, + "au187": 504.0, + "au187_m1": 2.3, + "au188": 530.4, + "au189": 1722.0, + "au189_m1": 275.4, + "au190": 2568.0, + "au190_m1": 0.125, + "au191": 11448.0, + "au191_m1": 0.92, + "au192": 17784.0, + "au192_m1": 0.029, + "au192_m2": 0.16, + "au193": 63540.0, + "au193_m1": 3.9, + "au194": 136872.0, + "au194_m1": 0.6, + "au194_m2": 0.42, + "au195": 16078870.0, + "au195_m1": 30.5, + "au196": 532820.2, + "au196_m1": 8.1, + "au196_m2": 34560.0, + "au197_m1": 7.73, + "au198": 232822.1, + "au198_m1": 196300.8, + "au199": 271209.6, + "au200": 2904.0, + "au200_m1": 67320.0, + "au201": 1560.0, + "au202": 28.4, + "au203": 60.0, + "au204": 39.8, + "au205": 31.0, + "hg171": 6.9e-05, + "hg172": 0.000365, + "hg173": 0.0007, + "hg174": 0.0019, + "hg175": 0.0107, + "hg176": 0.0203, + "hg177": 0.1273, + "hg178": 0.269, + "hg179": 1.08, + "hg180": 2.58, + "hg181": 3.6, + "hg182": 10.83, + "hg183": 9.4, + "hg184": 30.9, + "hg185": 49.1, + "hg185_m1": 21.6, + "hg186": 82.8, + "hg187": 144.0, + "hg187_m1": 114.0, + "hg188": 195.0, + "hg189": 456.0, + "hg189_m1": 516.0, + "hg190": 1200.0, + "hg191": 2940.0, + "hg191_m1": 3048.0, + "hg192": 17460.0, + "hg193": 13680.0, + "hg193_m1": 42480.0, + "hg194": 14011600000.0, + "hg195": 37908.0, + "hg195_m1": 149760.0, + "hg197": 230904.0, + "hg197_m1": 85680.0, + "hg199_m1": 2560.2, + "hg203": 4025722.0, + "hg205": 308.4, + "hg205_m1": 0.00109, + "hg206": 499.2, + "hg207": 174.0, + "hg208": 2490.0, + "hg209": 36.5, + "hg210": 146.0, + "tl176": 0.006, + "tl177": 0.018, + "tl178": 0.06, + "tl179": 0.23, + "tl179_m1": 0.0017, + "tl180": 1.09, + "tl181": 3.2, + "tl181_m1": 0.0014, + "tl182": 3.1, + "tl183": 6.9, + "tl183_m1": 0.0533, + "tl184": 11.0, + "tl185": 19.5, + "tl185_m1": 1.93, + "tl186": 27.5, + "tl186_m1": 2.9, + "tl187": 51.0, + "tl187_m1": 15.6, + "tl188": 71.0, + "tl188_m1": 71.0, + "tl188_m2": 0.041, + "tl189": 138.0, + "tl189_m1": 84.0, + "tl190": 222.0, + "tl190_m1": 156.0, + "tl191": 1200.0, + "tl191_m1": 313.2, + "tl192": 576.0, + "tl192_m1": 648.0, + "tl193": 1296.0, + "tl193_m1": 126.6, + "tl194": 1980.0, + "tl194_m1": 1968.0, + "tl195": 4176.0, + "tl195_m1": 3.6, + "tl196": 6624.0, + "tl196_m1": 5076.0, + "tl197": 10224.0, + "tl197_m1": 0.54, + "tl198": 19080.0, + "tl198_m1": 6732.0, + "tl198_m2": 0.0321, + "tl199": 26712.0, + "tl199_m1": 0.0284, + "tl200": 93960.0, + "tl200_m1": 0.034, + "tl201": 262837.4, + "tl201_m1": 0.00201, + "tl202": 1063584.0, + "tl204": 119382400.0, + "tl206": 252.12, + "tl206_m1": 224.4, + "tl207": 286.2, + "tl207_m1": 1.33, + "tl208": 183.18, + "tl209": 132.0, + "tl210": 78.0, + "tl211": 60.0, + "tl212": 67.0, + "pb178": 0.00023, + "pb179": 0.003, + "pb180": 0.0045, + "pb181": 0.036, + "pb181_m1": 0.045, + "pb182": 0.0575, + "pb183": 0.535, + "pb183_m1": 0.415, + "pb184": 0.49, + "pb185": 6.3, + "pb185_m1": 4.3, + "pb186": 4.82, + "pb187": 15.2, + "pb187_m1": 18.3, + "pb188": 25.1, + "pb189": 39.0, + "pb189_m1": 50.0, + "pb190": 71.0, + "pb191": 79.8, + "pb191_m1": 130.8, + "pb192": 210.0, + "pb193": 120.0, + "pb193_m1": 348.0, + "pb194": 720.0, + "pb195": 900.0, + "pb195_m1": 900.0, + "pb196": 2220.0, + "pb197": 480.0, + "pb197_m1": 2580.0, + "pb198": 8640.0, + "pb199": 5400.0, + "pb199_m1": 732.0, + "pb200": 77400.0, + "pb201": 33588.0, + "pb201_m1": 60.8, + "pb202": 1656770000000.0, + "pb202_m1": 12744.0, + "pb203": 186912.0, + "pb203_m1": 6.21, + "pb203_m2": 0.48, + "pb204": 4.4e24, + "pb204_m1": 4015.8, + "pb205": 545946000000000.0, + "pb205_m1": 0.00555, + "pb207_m1": 0.806, + "pb209": 11710.8, + "pb210": 700578700.0, + "pb211": 2166.0, + "pb212": 38304.0, + "pb213": 612.0, + "pb214": 1608.0, + "pb215": 36.0, + "bi184": 0.013, + "bi184_m1": 0.0066, + "bi185": 5.8e-05, + "bi186": 0.015, + "bi186_m1": 0.0098, + "bi187": 0.032, + "bi187_m1": 0.00031, + "bi188": 0.06, + "bi188_m1": 0.265, + "bi189": 0.674, + "bi189_m1": 0.005, + "bi190": 6.3, + "bi190_m1": 6.2, + "bi191": 12.4, + "bi191_m1": 0.125, + "bi192": 34.6, + "bi192_m1": 39.6, + "bi193": 63.6, + "bi193_m1": 3.2, + "bi194": 95.0, + "bi194_m1": 125.0, + "bi194_m2": 115.0, + "bi195": 183.0, + "bi195_m1": 87.0, + "bi196": 308.0, + "bi196_m1": 0.6, + "bi196_m2": 240.0, + "bi197": 559.8, + "bi197_m1": 302.4, + "bi198": 618.0, + "bi198_m1": 696.0, + "bi198_m2": 7.7, + "bi199": 1620.0, + "bi199_m1": 1482.0, + "bi200": 2184.0, + "bi200_m1": 1860.0, + "bi200_m2": 0.4, + "bi201": 6180.0, + "bi201_m1": 3450.0, + "bi202": 6156.0, + "bi203": 42336.0, + "bi203_m1": 0.305, + "bi204": 40392.0, + "bi204_m1": 0.013, + "bi204_m2": 0.00107, + "bi205": 1322784.0, + "bi206": 539395.2, + "bi207": 995642300.0, + "bi208": 11613200000000.0, + "bi208_m1": 0.00258, + "bi209": 5.99594e26, + "bi210": 433036.8, + "bi210_m1": 95935100000000.0, + "bi211": 128.4, + "bi212": 3633.0, + "bi212_m1": 1500.0, + "bi212_m2": 420.0, + "bi213": 2735.4, + "bi214": 1194.0, + "bi215": 462.0, + "bi215_m1": 36.4, + "bi216": 135.0, + "bi217": 98.5, + "bi218": 33.0, + "po188": 0.000425, + "po189": 0.0035, + "po190": 0.00245, + "po191": 0.022, + "po191_m1": 0.093, + "po192": 0.0332, + "po193": 0.37, + "po193_m1": 0.373, + "po194": 0.392, + "po195": 4.64, + "po195_m1": 1.92, + "po196": 5.8, + "po197": 84.0, + "po197_m1": 32.0, + "po198": 106.2, + "po199": 328.2, + "po199_m1": 250.2, + "po200": 690.6, + "po201": 936.0, + "po201_m1": 537.6, + "po202": 2676.0, + "po203": 2202.0, + "po203_m1": 45.0, + "po204": 12708.0, + "po205": 6264.0, + "po205_m1": 0.000645, + "po205_m2": 0.0574, + "po206": 760320.0, + "po207": 20880.0, + "po207_m1": 2.79, + "po208": 91453920.0, + "po209": 3218880000.0, + "po210": 11955690.0, + "po211": 0.516, + "po211_m1": 25.2, + "po212": 2.99e-07, + "po212_m1": 45.1, + "po213": 4.2e-06, + "po214": 0.0001643, + "po215": 0.001781, + "po216": 0.145, + "po217": 1.53, + "po218": 185.88, + "po219": 3e-07, + "po220": 3e-07, + "at193": 0.0285, + "at194": 0.04, + "at194_m1": 0.25, + "at195": 0.328, + "at195_m1": 0.147, + "at196": 0.388, + "at196_m1": 1.1e-05, + "at197": 0.388, + "at197_m1": 2.0, + "at198": 4.2, + "at198_m1": 1.0, + "at199": 7.03, + "at200": 43.0, + "at200_m1": 47.0, + "at200_m2": 7.9, + "at201": 85.2, + "at202": 184.0, + "at202_m1": 182.0, + "at202_m2": 0.46, + "at203": 444.0, + "at204": 553.2, + "at204_m1": 0.108, + "at205": 1614.0, + "at206": 1836.0, + "at207": 6480.0, + "at208": 5868.0, + "at209": 19476.0, + "at210": 29160.0, + "at211": 25970.4, + "at212": 0.314, + "at212_m1": 0.119, + "at213": 1.25e-07, + "at214": 5.58e-07, + "at215": 0.0001, + "at216": 0.0003, + "at217": 0.0323, + "at218": 1.5, + "at219": 56.0, + "at220": 222.6, + "at221": 138.0, + "at222": 54.0, + "at223": 50.0, + "rn195": 0.0065, + "rn195_m1": 0.005, + "rn196": 0.0046, + "rn197": 0.066, + "rn197_m1": 0.021, + "rn198": 0.065, + "rn199": 0.59, + "rn199_m1": 0.31, + "rn200": 1.075, + "rn201": 7.0, + "rn201_m1": 3.8, + "rn202": 9.7, + "rn203": 44.0, + "rn203_m1": 26.9, + "rn204": 70.2, + "rn205": 170.0, + "rn206": 340.2, + "rn207": 555.0, + "rn208": 1461.0, + "rn209": 1728.0, + "rn210": 8640.0, + "rn211": 52560.0, + "rn212": 1434.0, + "rn213": 0.025, + "rn214": 2.7e-07, + "rn215": 2.3e-06, + "rn216": 4.5e-05, + "rn217": 0.00054, + "rn218": 0.035, + "rn219": 3.96, + "rn220": 55.6, + "rn221": 1542.0, + "rn222": 330350.4, + "rn223": 1458.0, + "rn224": 6420.0, + "rn225": 279.6, + "rn226": 444.0, + "rn227": 20.8, + "rn228": 65.0, + "fr199": 0.015, + "fr200": 0.049, + "fr201": 0.069, + "fr202": 0.3, + "fr202_m1": 0.29, + "fr203": 0.55, + "fr204": 1.7, + "fr204_m1": 2.6, + "fr204_m2": 1.0, + "fr205": 3.8, + "fr206": 16.0, + "fr206_m1": 16.0, + "fr206_m2": 0.7, + "fr207": 14.8, + "fr208": 59.1, + "fr209": 50.0, + "fr210": 190.8, + "fr211": 186.0, + "fr212": 1200.0, + "fr213": 34.82, + "fr214": 0.005, + "fr214_m1": 0.00335, + "fr215": 8.6e-08, + "fr216": 7e-07, + "fr217": 1.9e-05, + "fr218": 0.001, + "fr218_m1": 0.022, + "fr219": 0.02, + "fr220": 27.4, + "fr221": 294.0, + "fr222": 852.0, + "fr223": 1320.0, + "fr224": 199.8, + "fr225": 237.0, + "fr226": 49.0, + "fr227": 148.2, + "fr228": 38.0, + "fr229": 50.2, + "fr230": 19.1, + "fr231": 17.6, + "fr232": 5.5, + "ra202": 0.0275, + "ra203": 0.031, + "ra203_m1": 0.025, + "ra204": 0.0605, + "ra205": 0.22, + "ra205_m1": 0.18, + "ra206": 0.24, + "ra207": 1.3, + "ra207_m1": 0.055, + "ra208": 1.3, + "ra209": 4.6, + "ra210": 3.7, + "ra211": 13.0, + "ra212": 13.0, + "ra213": 163.8, + "ra213_m1": 0.0021, + "ra214": 2.46, + "ra215": 0.00155, + "ra216": 1.82e-07, + "ra217": 1.6e-06, + "ra218": 2.52e-05, + "ra219": 0.01, + "ra220": 0.018, + "ra221": 28.0, + "ra222": 36.17, + "ra223": 987552.0, + "ra224": 316224.0, + "ra225": 1287360.0, + "ra226": 50492200000.0, + "ra227": 2532.0, + "ra228": 181456200.0, + "ra229": 240.0, + "ra230": 5580.0, + "ra231": 103.0, + "ra232": 252.0, + "ra233": 30.0, + "ra234": 30.0, + "ac206": 0.024, + "ac206_m1": 0.0395, + "ac207": 0.027, + "ac208": 0.095, + "ac208_m1": 0.025, + "ac209": 0.098, + "ac210": 0.35, + "ac211": 0.21, + "ac212": 0.93, + "ac213": 0.8, + "ac214": 8.2, + "ac215": 0.17, + "ac216": 0.00044, + "ac216_m1": 0.000441, + "ac217": 6.9e-08, + "ac218": 1.08e-06, + "ac219": 1.18e-05, + "ac220": 0.0264, + "ac221": 0.052, + "ac222": 5.0, + "ac222_m1": 63.0, + "ac223": 126.0, + "ac224": 10008.0, + "ac225": 864000.0, + "ac226": 105732.0, + "ac227": 687072100.0, + "ac228": 22140.0, + "ac229": 3762.0, + "ac230": 122.0, + "ac231": 450.0, + "ac232": 119.0, + "ac233": 145.0, + "ac234": 44.0, + "ac235": 60.0, + "ac236": 120.0, + "th209": 0.0065, + "th210": 0.016, + "th211": 0.05, + "th212": 0.035, + "th213": 0.14, + "th214": 0.1, + "th215": 1.2, + "th216": 0.026, + "th217": 0.000251, + "th218": 1.17e-07, + "th219": 1.05e-06, + "th220": 9.7e-06, + "th221": 0.00173, + "th222": 0.002237, + "th223": 0.6, + "th224": 1.05, + "th225": 523.2, + "th226": 1834.2, + "th227": 1613952.0, + "th228": 60338130.0, + "th229": 231633000000.0, + "th230": 2378810000000.0, + "th231": 91872.0, + "th232": 4.43384e17, + "th233": 1338.0, + "th234": 2082240.0, + "th235": 426.0, + "th236": 2238.0, + "th237": 282.0, + "th238": 564.0, + "pa212": 0.0051, + "pa213": 0.0053, + "pa214": 0.017, + "pa215": 0.014, + "pa216": 0.16, + "pa217": 0.0036, + "pa217_m1": 0.0012, + "pa218": 0.000113, + "pa219": 5.3e-08, + "pa220": 7.8e-07, + "pa221": 5.9e-06, + "pa222": 0.0033, + "pa223": 0.0051, + "pa224": 0.79, + "pa225": 1.7, + "pa226": 108.0, + "pa227": 2298.0, + "pa228": 79200.0, + "pa229": 129600.0, + "pa230": 1503360.0, + "pa231": 1033830000000.0, + "pa232": 114048.0, + "pa233": 2330640.0, + "pa234": 24120.0, + "pa234_m1": 69.54, + "pa235": 1466.4, + "pa236": 546.0, + "pa237": 522.0, + "pa238": 136.2, + "pa239": 6480.0, + "pa240": 120.0, + "u217": 0.0235, + "u218": 0.000545, + "u219": 4.2e-05, + "u220": 6e-08, + "u222": 1.3e-06, + "u223": 1.8e-05, + "u224": 0.0009, + "u225": 0.084, + "u226": 0.35, + "u227": 66.0, + "u228": 546.0, + "u229": 3480.0, + "u230": 1797120.0, + "u231": 362880.0, + "u232": 2174319000.0, + "u233": 5023970000000.0, + "u234": 7747390000000.0, + "u235": 2.22102e16, + "u235_m1": 1560.0, + "u236": 739079000000000.0, + "u237": 583200.0, + "u238": 1.40999e17, + "u239": 1407.0, + "u240": 50760.0, + "u241": 300.0, + "u242": 1008.0, + "np225": 2e-06, + "np226": 0.035, + "np227": 0.51, + "np228": 61.4, + "np229": 240.0, + "np230": 276.0, + "np231": 2928.0, + "np232": 882.0, + "np233": 2172.0, + "np234": 380160.0, + "np235": 34231680.0, + "np236": 4828310000000.0, + "np236_m1": 81000.0, + "np237": 67659500000000.0, + "np238": 182908.8, + "np239": 203558.4, + "np240": 3714.0, + "np240_m1": 433.2, + "np241": 834.0, + "np242": 132.0, + "np242_m1": 330.0, + "np243": 111.0, + "np244": 137.4, + "pu228": 1.85, + "pu229": 112.0, + "pu230": 102.0, + "pu231": 516.0, + "pu232": 2028.0, + "pu233": 1254.0, + "pu234": 31680.0, + "pu235": 1518.0, + "pu236": 90191620.0, + "pu237": 3943296.0, + "pu237_m1": 0.18, + "pu238": 2767602000.0, + "pu239": 760854000000.0, + "pu240": 207049000000.0, + "pu241": 450958100.0, + "pu242": 11786800000000.0, + "pu243": 17841.6, + "pu244": 2559320000000000.0, + "pu245": 37800.0, + "pu246": 936576.0, + "pu247": 196128.0, + "am231": 10.0, + "am232": 79.0, + "am233": 192.0, + "am234": 139.2, + "am235": 618.0, + "am236": 216.0, + "am237": 4416.0, + "am238": 5880.0, + "am239": 42840.0, + "am240": 182880.0, + "am241": 13651800000.0, + "am242": 57672.0, + "am242_m1": 4449622000.0, + "am242_m2": 0.014, + "am243": 232580000000.0, + "am244": 36360.0, + "am244_m1": 1560.0, + "am245": 7380.0, + "am246": 2340.0, + "am246_m1": 1500.0, + "am247": 1380.0, + "am248": 600.0, + "am249": 120.0, + "cm233": 17.7, + "cm234": 51.0, + "cm235": 300.0, + "cm236": 1900.0, + "cm237": 1200.0, + "cm238": 8640.0, + "cm239": 10440.0, + "cm240": 2332800.0, + "cm241": 2833920.0, + "cm242": 14078020.0, + "cm243": 918326200.0, + "cm244": 571508100.0, + "cm244_m1": 5e-07, + "cm245": 268240000000.0, + "cm246": 150214000000.0, + "cm247": 492299000000000.0, + "cm248": 10982000000000.0, + "cm249": 3849.0, + "cm250": 261928000000.0, + "cm251": 1008.0, + "bk235": 20.0, + "bk237": 60.0, + "bk238": 144.0, + "bk240": 288.0, + "bk241": 276.0, + "bk242": 420.0, + "bk243": 16200.0, + "bk244": 15660.0, + "bk245": 426816.0, + "bk246": 155520.0, + "bk247": 43549500000.0, + "bk248": 283824000.0, + "bk248_m1": 85320.0, + "bk249": 27648000.0, + "bk250": 11563.2, + "bk251": 3336.0, + "bk253": 600.0, + "bk254": 120.0, + "cf237": 2.1, + "cf238": 0.021, + "cf239": 51.5, + "cf240": 57.6, + "cf241": 226.8, + "cf242": 222.0, + "cf243": 642.0, + "cf244": 1164.0, + "cf245": 2700.0, + "cf246": 128520.0, + "cf247": 11196.0, + "cf248": 28814400.0, + "cf249": 11076700000.0, + "cf250": 412773400.0, + "cf251": 28338700000.0, + "cf252": 83468070.0, + "cf253": 1538784.0, + "cf254": 5227200.0, + "cf255": 5100.0, + "cf256": 738.0, + "es240": 1.0, + "es241": 8.5, + "es242": 13.5, + "es243": 21.0, + "es244": 37.0, + "es245": 66.0, + "es246": 462.0, + "es247": 273.0, + "es247_m1": 54000000.0, + "es248": 1620.0, + "es249": 6132.0, + "es250": 30960.0, + "es250_m1": 7992.0, + "es251": 118800.0, + "es252": 40754880.0, + "es253": 1768608.0, + "es254": 23820480.0, + "es254_m1": 141479.9, + "es255": 3438720.0, + "es256": 1524.0, + "es256_m1": 27360.0, + "es257": 665280.0, + "es258": 180.0, + "fm242": 0.0008, + "fm243": 0.2, + "fm244": 0.0033, + "fm245": 4.2, + "fm246": 1.1, + "fm247": 29.0, + "fm248": 36.0, + "fm249": 156.0, + "fm250": 1800.0, + "fm250_m1": 1.8, + "fm251": 19080.0, + "fm252": 91404.0, + "fm253": 259200.0, + "fm254": 11664.0, + "fm255": 72252.0, + "fm256": 9456.0, + "fm257": 8683200.0, + "fm258": 0.00037, + "fm259": 1.5, + "fm260": 0.004, + "md245": 0.0009, + "md245_m1": 0.39, + "md246": 0.9, + "md247": 1.12, + "md247_m1": 0.26, + "md248": 7.0, + "md249": 24.0, + "md249_m1": 1.9, + "md250": 27.5, + "md251": 240.0, + "md252": 138.0, + "md253": 630.0, + "md254": 1680.0, + "md254_m1": 1680.0, + "md255": 1620.0, + "md256": 4620.0, + "md257": 19872.0, + "md258": 4449600.0, + "md258_m1": 3420.0, + "md259": 5760.0, + "md260": 2747520.0, + "md261": 2400.0, + "no250": 4.35e-06, + "no251": 0.8, + "no251_m1": 1.02, + "no252": 2.44, + "no253": 97.2, + "no254": 51.0, + "no254_m1": 0.28, + "no255": 186.0, + "no256": 2.91, + "no257": 25.0, + "no258": 0.0012, + "no259": 3480.0, + "no260": 0.106, + "no261": 160000.0, + "no262": 0.005, + "lr251": 1.341, + "lr252": 0.38, + "lr253": 0.575, + "lr253_m1": 1.535, + "lr254": 13.0, + "lr255": 22.0, + "lr255_m1": 2.53, + "lr256": 27.0, + "lr257": 0.646, + "lr258": 4.1, + "lr259": 6.2, + "lr260": 180.0, + "lr261": 2340.0, + "lr262": 14400.0, + "lr263": 18000.0, + "rf253": 5.15e-05, + "rf254": 2.3e-05, + "rf255": 1.68, + "rf256": 0.0064, + "rf257": 4.7, + "rf257_m1": 3.9, + "rf258": 0.012, + "rf259": 3.2, + "rf260": 0.021, + "rf261": 65.0, + "rf261_m1": 81.0, + "rf262": 2.3, + "rf263": 600.0, + "rf264": 3600.0, + "rf265": 1.0, + "db255": 1.7, + "db256": 1.7, + "db257": 1.52, + "db257_m1": 0.78, + "db258": 4.0, + "db258_m1": 20.0, + "db259": 0.51, + "db260": 1.52, + "db261": 1.8, + "db262": 35.0, + "db263": 28.5, + "db264": 180.0, + "db265": 900.0, + "sg258": 0.0032, + "sg259": 0.555, + "sg260": 0.0036, + "sg261": 0.23, + "sg262": 0.0079, + "sg263": 1.0, + "sg263_m1": 0.12, + "sg264": 0.045, + "sg265": 8.0, + "sg266": 25.0, + "sg269": 50.0, + "bh260": 0.0003, + "bh261": 0.013, + "bh262": 0.102, + "bh262_m1": 0.022, + "bh263": 0.0002, + "bh264": 0.66, + "bh265": 1.1, + "bh266": 5.4, + "bh267": 21.0, + "bh269": 50.0, + "hs263": 0.00355, + "hs264": 0.0008, + "hs265": 0.00205, + "hs265_m1": 0.0003, + "hs266": 0.00265, + "hs267": 0.0545, + "hs268": 1.2, + "hs269": 12.9, + "hs273": 50.0, + "mt265": 120.0, + "mt266": 0.0018, + "mt266_m1": 0.0017, + "mt267": 0.01, + "mt268": 0.0225, + "mt269": 0.05, + "mt270": 0.00605, + "mt271": 5.0, + "mt273": 20.0, + "ds267": 2.8e-06, + "ds268": 0.0001, + "ds269": 0.000268, + "ds270": 0.00015, + "ds270_m1": 0.009, + "ds271": 0.001705, + "ds271_m1": 0.0865, + "ds272": 1.0, + "ds273": 0.000225, + "ds279_m1": 0.19, + "rg272": 0.0041 } From 3e61076715b9a15285b2d731127b968c600d7812 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Sat, 25 Jun 2022 14:38:19 +0200 Subject: [PATCH 045/119] Changing check for Tabular to use std. dev. --- tests/unit_tests/test_stats.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/tests/unit_tests/test_stats.py b/tests/unit_tests/test_stats.py index f789a0dca..87d811881 100644 --- a/tests/unit_tests/test_stats.py +++ b/tests/unit_tests/test_stats.py @@ -165,14 +165,26 @@ def test_tabular(): n_samples = 100_000 samples = d.sample(n_samples, seed=100) - assert samples.mean() == pytest.approx(d.mean(), rel=1e-03) + diff = np.abs(samples - d.mean()) + # within_1_sigma = np.count_nonzero(diff < samples.std()) + # assert within_1_sigma / n_samples >= 0.68 + within_2_sigma = np.count_nonzero(diff < 2*samples.std()) + assert within_2_sigma / n_samples >= 0.95 + within_3_sigma = np.count_nonzero(diff < 3*samples.std()) + assert within_3_sigma / n_samples >= 0.99 # test histogram sampling d = openmc.stats.Tabular(x, p, interpolation='histogram') d.normalize() samples = d.sample(n_samples, seed=100) - assert samples.mean() == pytest.approx(d.mean(), rel=1e-03) + diff = np.abs(samples - d.mean()) + # within_1_sigma = np.count_nonzero(diff < samples.std()) + # assert within_1_sigma / n_samples >= 0.68 + within_2_sigma = np.count_nonzero(diff < 2*samples.std()) + assert within_2_sigma / n_samples >= 0.95 + within_3_sigma = np.count_nonzero(diff < 3*samples.std()) + assert within_3_sigma / n_samples >= 0.99 def test_legendre(): From e9eaf2edef09fe4cec82810d8669e6437d512a4d Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Sun, 26 Jun 2022 01:10:53 -0400 Subject: [PATCH 046/119] Using std. dev. of sampled mean for comparison --- tests/unit_tests/test_stats.py | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/tests/unit_tests/test_stats.py b/tests/unit_tests/test_stats.py index 87d811881..b57f9578a 100644 --- a/tests/unit_tests/test_stats.py +++ b/tests/unit_tests/test_stats.py @@ -36,8 +36,10 @@ def test_discrete(): # sample discrete distribution n_samples = 1_000_000 samples = d3.sample(n_samples, seed=100) - # check that the mean of the samples is close to the true mean - assert samples.mean() == pytest.approx(exp_mean, rel=1e-02) + # check that the mean of the samples is within 3 std. dev. + # of the expected mean + std_dev = samples.std() / np.sqrt(n_samples) + assert np.abs(exp_mean - samples.mean()) < 3*std_dev def test_merge_discrete(): @@ -81,7 +83,10 @@ def test_uniform(): exp_mean = 0.5 * (a + b) n_samples = 1_000_000 samples = d.sample(n_samples, seed=100) - assert samples.mean() == pytest.approx(exp_mean, rel=1e-02) + # check that the mean of the samples is within 3 std. dev. + # of the expected mean + std_dev = samples.std() / np.sqrt(n_samples) + assert np.abs(exp_mean - samples.mean()) < 3*std_dev def test_powerlaw(): @@ -100,7 +105,10 @@ def test_powerlaw(): # sample power law distribution n_samples = 1_000_000 samples = d.sample(n_samples, seed=100) - assert samples.mean() == pytest.approx(exp_mean, rel=1e-02) + # check that the mean of the samples is within 3 std. dev. + # of the expected mean + std_dev = samples.std() / np.sqrt(n_samples) + assert np.abs(exp_mean - samples.mean()) < 3*std_dev def test_maxwell(): @@ -117,13 +125,19 @@ def test_maxwell(): # sample maxwell distribution n_samples = 1_000_000 samples = d.sample(n_samples, seed=100) - assert samples.mean() == pytest.approx(exp_mean, rel=1e-02) + # check that the mean of the samples is within 3 std. dev. + # of the expected mean + std_dev = samples.std() / np.sqrt(n_samples) + assert np.abs(exp_mean - samples.mean()) < 3*std_dev # A second sample with a different seed samples_2 = d.sample(n_samples, seed=200) - assert samples_2.mean() == pytest.approx(exp_mean, rel=1e-02) - assert samples_2.mean() != samples.mean() + # check that the mean of the samples is within 3 std. dev. + # of the expected mean + std_dev = samples_2.std() / np.sqrt(n_samples) + assert np.abs(exp_mean - samples_2.mean()) < 3*std_dev + assert samples_2.mean() != samples.mean() def test_watt(): @@ -145,7 +159,10 @@ def test_watt(): # sample Watt distribution n_samples = 1_000_000 samples = d.sample(n_samples, seed=100) - assert samples.mean() == pytest.approx(exp_mean, rel=1e-03) + # check that the mean of the samples is within 3 std. dev. + # of the expected mean + std_dev = samples.std() / np.sqrt(n_samples) + assert np.abs(exp_mean - samples.mean()) < 3*std_dev def test_tabular(): From a4f98b489c161ed4b7ac26cca4e945d535ccaba3 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 23 May 2022 14:20:01 -0500 Subject: [PATCH 047/119] Change values in dict returned by Material.get_nuclide_atom_densities --- openmc/cell.py | 8 ++++---- openmc/deplete/operator.py | 15 +++++++-------- openmc/material.py | 20 ++++++++++++-------- openmc/plotter.py | 12 ++++-------- tests/unit_tests/test_deplete_activation.py | 2 +- tests/unit_tests/test_material.py | 15 +++++++-------- tests/unit_tests/test_model.py | 18 ++++++++---------- 7 files changed, 43 insertions(+), 47 deletions(-) diff --git a/openmc/cell.py b/openmc/cell.py index 103a34fe6..4b419e1c6 100644 --- a/openmc/cell.py +++ b/openmc/cell.py @@ -214,8 +214,8 @@ class Cell(IDManagerMixin): self._atoms = self._fill.get_nuclide_atom_densities() # Convert to total number of atoms - for key, nuclide in self._atoms.items(): - atom = nuclide[1] * self._volume * 1.0e+24 + for key, atom_per_bcm in self._atoms.items(): + atom = atom_per_bcm * self._volume * 1.0e+24 self._atoms[key] = atom elif self.fill_type == 'distribmat': @@ -224,12 +224,12 @@ class Cell(IDManagerMixin): partial_volume = self.volume / len(self.fill) self._atoms = OrderedDict() for mat in self.fill: - for key, nuclide in mat.get_nuclide_atom_densities().items(): + for key, atom_per_bcm in mat.get_nuclide_atom_densities().items(): # To account for overlap of nuclides between distribmat # we need to append new atoms to any existing value # hence it is necessary to ask for default. atom = self._atoms.setdefault(key, 0) - atom += nuclide[1] * partial_volume * 1.0e+24 + atom += atom_per_bcm * partial_volume * 1.0e+24 self._atoms[key] = atom else: diff --git a/openmc/deplete/operator.py b/openmc/deplete/operator.py index 327c762e0..7ef874e87 100644 --- a/openmc/deplete/operator.py +++ b/openmc/deplete/operator.py @@ -528,9 +528,9 @@ class Operator(TransportOperator): """ mat_id = str(mat.id) - for nuclide, density in mat.get_nuclide_atom_densities().values(): - number = density * 1.0e24 - self.number.set_atom_density(mat_id, nuclide, number) + for nuclide, atom_per_bcm in mat.get_nuclide_atom_densities().items(): + atom_per_cc = atom_per_bcm * 1.0e24 + self.number.set_atom_density(mat_id, nuclide, atom_per_cc) def _set_number_from_results(self, mat, prev_res): """Extracts material nuclides and number densities. @@ -556,16 +556,15 @@ class Operator(TransportOperator): # Merge lists of nuclides, with the same order for every calculation geom_nuc_densities.update(depl_nuc) - for nuclide in geom_nuc_densities.keys(): + for nuclide, atom_per_bcm in geom_nuc_densities.items(): if nuclide in depl_nuc: concentration = prev_res.get_atoms(mat_id, nuclide)[1][-1] volume = prev_res[-1].volume[mat_id] - number = concentration / volume + atom_per_cc = concentration / volume else: - density = geom_nuc_densities[nuclide][1] - number = density * 1.0e24 + atom_per_cc = atom_per_bcm * 1.0e24 - self.number.set_atom_density(mat_id, nuclide, number) + self.number.set_atom_density(mat_id, nuclide, atom_per_cc) def initial_condition(self): """Performs final setup and returns initial condition. diff --git a/openmc/material.py b/openmc/material.py index 3c2a98ffd..073dab712 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -259,10 +259,10 @@ class Material(IDManagerMixin): if self.volume is None: raise ValueError("Volume must be set in order to determine mass.") density = 0.0 - for nuc, atoms_per_cc in self.get_nuclide_atom_densities().values(): + for nuc, atoms_per_bcm in self.get_nuclide_atom_densities().items(): Z = openmc.data.zam(nuc)[0] if Z >= 90: - density += 1e24 * atoms_per_cc * openmc.data.atomic_mass(nuc) \ + density += 1e24 * atoms_per_bcm * openmc.data.atomic_mass(nuc) \ / openmc.data.AVOGADRO return density*self.volume @@ -786,11 +786,15 @@ class Material(IDManagerMixin): """Returns all nuclides in the material and their atomic densities in units of atom/b-cm + .. versionchanged:: 0.13.1 + The values in the dictionary were changed from a tuple containing + the nuclide name and the density to just the density. + Returns ------- nuclides : dict - Dictionary whose keys are nuclide names and values are tuples of - (nuclide, density in atom/b-cm) + Dictionary whose keys are nuclide names and values are densities in + [atom/b-cm] """ @@ -850,7 +854,7 @@ class Material(IDManagerMixin): nuclides = OrderedDict() for n, nuc in enumerate(nucs): - nuclides[nuc] = (nuc, nuc_densities[n]) + nuclides[nuc] = nuc_densities[n] return nuclides @@ -870,9 +874,9 @@ class Material(IDManagerMixin): """ mass_density = 0.0 - for nuc, atoms_per_cc in self.get_nuclide_atom_densities().values(): + for nuc, atoms_per_bcm in self.get_nuclide_atom_densities().items(): if nuclide is None or nuclide == nuc: - density_i = 1e24 * atoms_per_cc * openmc.data.atomic_mass(nuc) \ + density_i = 1e24 * atoms_per_bcm * openmc.data.atomic_mass(nuc) \ / openmc.data.AVOGADRO mass_density += density_i return mass_density @@ -1092,7 +1096,7 @@ class Material(IDManagerMixin): nuclides_per_cc = defaultdict(float) mass_per_cc = defaultdict(float) for mat, wgt in zip(materials, wgts): - for nuc, atoms_per_bcm in mat.get_nuclide_atom_densities().values(): + for nuc, atoms_per_bcm in mat.get_nuclide_atom_densities().items(): nuc_per_cc = wgt*1.e24*atoms_per_bcm nuclides_per_cc[nuc] += nuc_per_cc mass_per_cc[nuc] += nuc_per_cc*openmc.data.atomic_mass(nuc) / \ diff --git a/openmc/plotter.py b/openmc/plotter.py index 92acaf5bb..16760868e 100644 --- a/openmc/plotter.py +++ b/openmc/plotter.py @@ -542,15 +542,11 @@ def _calculate_cexs_elem_mat(this, types, temperature=294., if isinstance(this, openmc.Material): # Expand elements in to nuclides with atomic densities - nuclides = this.get_nuclide_atom_densities() - # For ease of processing split out the nuclide and its fraction - nuc_fractions = {nuclide[1][0]: nuclide[1][1] - for nuclide in nuclides.items()} + nuc_fractions = this.get_nuclide_atom_densities() # Create a dict of [nuclide name] = nuclide object to carry forward # with a common nuclides format between openmc.Material and # openmc.Element objects - nuclides = {nuclide[1][0]: nuclide[1][0] - for nuclide in nuclides.items()} + nuclides = {nuclide: nuclide for nuclide in nuc_fractions} else: # Expand elements in to nuclides with atomic densities nuclides = this.expand(1., 'ao', enrichment=enrichment, @@ -885,13 +881,13 @@ def _calculate_mgxs_elem_mat(this, types, library, orders=None, # Check to see if we have nuclides/elements or a macroscopic object if this._macroscopic is not None: # We have macroscopics - nuclides = {this._macroscopic: (this._macroscopic, this.density)} + nuclides = {this._macroscopic: this.density} else: # Expand elements in to nuclides with atomic densities nuclides = this.get_nuclide_atom_densities() # For ease of processing split out nuc and nuc_density - nuc_fraction = [nuclide[1][1] for nuclide in nuclides.items()] + nuc_fraction = list(nuclides.values()) else: T = temperature # Expand elements in to nuclides with atomic densities diff --git a/tests/unit_tests/test_deplete_activation.py b/tests/unit_tests/test_deplete_activation.py index 0b82a5fbc..cb3b86b9c 100644 --- a/tests/unit_tests/test_deplete_activation.py +++ b/tests/unit_tests/test_deplete_activation.py @@ -92,7 +92,7 @@ def test_activation(run_in_tmpdir, model, reaction_rate_mode, reaction_rate_opts w = model.geometry.get_materials_by_name('tungsten')[0] atom_densities = w.get_nuclide_atom_densities() - atom_per_cc = 1e24 * atom_densities['W186'][1] # Density in atom/cm^3 + atom_per_cc = 1e24 * atom_densities['W186'] # Density in atom/cm^3 n0 = atom_per_cc * w.volume # Absolute number of atoms # Pick a random irradiation time and then determine necessary source rate to diff --git a/tests/unit_tests/test_material.py b/tests/unit_tests/test_material.py index c15a4b9e5..374b5a3d8 100644 --- a/tests/unit_tests/test_material.py +++ b/tests/unit_tests/test_material.py @@ -100,7 +100,7 @@ def test_add_elements_by_formula(): m.add_elements_from_formula('Li4SiO4') # checking the ratio of elements is 4:1:4 for Li:Si:O elem = defaultdict(float) - for nuclide, adens in m.get_nuclide_atom_densities().values(): + for nuclide, adens in m.get_nuclide_atom_densities().items(): if nuclide.startswith("Li"): elem["Li"] += adens if nuclide.startswith("Si"): @@ -117,7 +117,7 @@ def test_add_elements_by_formula(): 'O16': 0.443386, 'O17': 0.000168} nuc_dens = m.get_nuclide_atom_densities() for nuclide in ref_dens: - assert nuc_dens[nuclide][1] == pytest.approx(ref_dens[nuclide], 1e-2) + assert nuc_dens[nuclide] == pytest.approx(ref_dens[nuclide], 1e-2) # testing the correct nuclides are added to the Material when enriched m = openmc.Material() @@ -129,7 +129,7 @@ def test_add_elements_by_formula(): 'O16': 0.443386, 'O17': 0.000168} nuc_dens = m.get_nuclide_atom_densities() for nuclide in ref_dens: - assert nuc_dens[nuclide][1] == pytest.approx(ref_dens[nuclide], 1e-2) + assert nuc_dens[nuclide] == pytest.approx(ref_dens[nuclide], 1e-2) # testing the use of brackets m = openmc.Material() @@ -137,7 +137,7 @@ def test_add_elements_by_formula(): # checking the ratio of elements is 2:2:6 for Mg:N:O elem = defaultdict(float) - for nuclide, adens in m.get_nuclide_atom_densities().values(): + for nuclide, adens in m.get_nuclide_atom_densities().items(): if nuclide.startswith("Mg"): elem["Mg"] += adens if nuclide.startswith("N"): @@ -155,7 +155,7 @@ def test_add_elements_by_formula(): 'O16': 0.599772, 'O17': 0.000227} nuc_dens = m.get_nuclide_atom_densities() for nuclide in ref_dens: - assert nuc_dens[nuclide][1] == pytest.approx(ref_dens[nuclide], 1e-2) + assert nuc_dens[nuclide] == pytest.approx(ref_dens[nuclide], 1e-2) # testing non integer multiplier results in a value error m = openmc.Material() @@ -289,8 +289,7 @@ def test_get_nuclide_densities(uo2): def test_get_nuclide_atom_densities(uo2): - nucs = uo2.get_nuclide_atom_densities() - for nuc, density in nucs.values(): + for nuc, density in uo2.get_nuclide_atom_densities().items(): assert nuc in ('U235', 'O16') assert density > 0 @@ -341,7 +340,7 @@ def test_borated_water(): 'O16':2.4672e-02} nuc_dens = m.get_nuclide_atom_densities() for nuclide in ref_dens: - assert nuc_dens[nuclide][1] == pytest.approx(ref_dens[nuclide], 1e-2) + assert nuc_dens[nuclide] == pytest.approx(ref_dens[nuclide], 1e-2) assert m.id == 50 # Test the Celsius conversion. diff --git a/tests/unit_tests/test_model.py b/tests/unit_tests/test_model.py index 10417b20e..9b05ed2a5 100644 --- a/tests/unit_tests/test_model.py +++ b/tests/unit_tests/test_model.py @@ -391,16 +391,14 @@ def test_py_lib_attributes(run_in_tmpdir, pin_model_attributes, mpi_intracomm): assert openmc.lib.materials[1].get_density('atom/b-cm') == \ pytest.approx(0.06891296988603757, abs=1e-13) mat_a_dens = np.sum( - [v[1] for v in test_model.materials[0]. - get_nuclide_atom_densities().values()]) + list(test_model.materials[0].get_nuclide_atom_densities().values())) assert mat_a_dens == pytest.approx(0.06891296988603757, abs=1e-8) # Change the density test_model.update_densities(['UO2'], 2.) assert openmc.lib.materials[1].get_density('atom/b-cm') == \ pytest.approx(2., abs=1e-13) mat_a_dens = np.sum( - [v[1] for v in test_model.materials[0]. - get_nuclide_atom_densities().values()]) + list(test_model.materials[0].get_nuclide_atom_densities().values())) assert mat_a_dens == pytest.approx(2., abs=1e-8) # Now lets do the cell temperature updates. @@ -441,7 +439,7 @@ def test_deplete(run_in_tmpdir, pin_model_attributes, mpi_intracomm): test_model = openmc.Model(geom, mats, settings, tals, plots) initial_mat = mats[0].clone() - initial_u = initial_mat.get_nuclide_atom_densities()['U235'][1] + initial_u = initial_mat.get_nuclide_atom_densities()['U235'] # Note that the chain file includes only U-235 fission to a stable Xe136 w/ # a yield of 100%. Thus all the U235 we lose becomes Xe136 @@ -453,8 +451,8 @@ def test_deplete(run_in_tmpdir, pin_model_attributes, mpi_intracomm): operator_kwargs=op_kwargs, power=1., output=False) # Get the new Xe136 and U235 atom densities - after_xe = mats[0].get_nuclide_atom_densities()['Xe136'][1] - after_u = mats[0].get_nuclide_atom_densities()['U235'][1] + after_xe = mats[0].get_nuclide_atom_densities()['Xe136'] + after_u = mats[0].get_nuclide_atom_densities()['U235'] assert after_xe + after_u == pytest.approx(initial_u, abs=1e-15) assert test_model.is_initialized is False @@ -462,7 +460,7 @@ def test_deplete(run_in_tmpdir, pin_model_attributes, mpi_intracomm): mats[0].nuclides.clear() densities = initial_mat.get_nuclide_atom_densities() tot_density = 0. - for nuc, density in densities.values(): + for nuc, density in densities.items(): mats[0].add_nuclide(nuc, density) tot_density += density mats[0].set_density('atom/b-cm', tot_density) @@ -473,8 +471,8 @@ def test_deplete(run_in_tmpdir, pin_model_attributes, mpi_intracomm): operator_kwargs=op_kwargs, power=1., output=False) # Get the new Xe136 and U235 atom densities - after_lib_xe = mats[0].get_nuclide_atom_densities()['Xe136'][1] - after_lib_u = mats[0].get_nuclide_atom_densities()['U235'][1] + after_lib_xe = mats[0].get_nuclide_atom_densities()['Xe136'] + after_lib_u = mats[0].get_nuclide_atom_densities()['U235'] assert after_lib_xe + after_lib_u == pytest.approx(initial_u, abs=1e-15) assert test_model.is_initialized is True From 7fcc20472690c49cf2b0508b099dc440b6249dc4 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 23 May 2022 14:43:34 -0500 Subject: [PATCH 048/119] Implement Material.get_nuclide_atoms method --- openmc/material.py | 19 +++++++++++++++++++ tests/unit_tests/test_material.py | 10 ++++++++++ 2 files changed, 29 insertions(+) diff --git a/openmc/material.py b/openmc/material.py index 073dab712..ea42d64b1 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -858,6 +858,25 @@ class Material(IDManagerMixin): return nuclides + def get_nuclide_atoms(self): + """Return number of atoms of each nuclide in the material + + .. versionadded:: 0.13.1 + + Returns + ------- + dict + Dictionary whose keys are nuclide names and values are number of + atoms present in the material. + + """ + if self.volume is None: + raise ValueError("Volume must be set in order to determine atoms.") + atoms = {} + for nuclide, atom_per_bcm in self.get_nuclide_atom_densities().items(): + atoms[nuclide] = 1.0e24 * atom_per_bcm * self.volume + return atoms + def get_mass_density(self, nuclide=None): """Return mass density of one or all nuclides diff --git a/tests/unit_tests/test_material.py b/tests/unit_tests/test_material.py index 374b5a3d8..fd0e4f624 100644 --- a/tests/unit_tests/test_material.py +++ b/tests/unit_tests/test_material.py @@ -294,6 +294,16 @@ def test_get_nuclide_atom_densities(uo2): assert density > 0 +def test_get_nuclide_atoms(): + mat = openmc.Material() + mat.add_nuclide('Li6', 1.0) + mat.set_density('atom/cm3', 3.26e20) + mat.volume = 100.0 + + atoms = mat.get_nuclide_atoms() + assert atoms['Li6'] == pytest.approx(mat.density * mat.volume) + + def test_mass(): m = openmc.Material() m.add_nuclide('Zr90', 1.0, 'wo') From 19494cccd022cdf9ee9c0c8e6461bea494d95e69 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 24 May 2022 12:47:36 -0500 Subject: [PATCH 049/119] Add check in Decay.decay_constant for erroneous half-life --- openmc/data/decay.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/openmc/data/decay.py b/openmc/data/decay.py index 5ca2b235a..51a594bc8 100644 --- a/openmc/data/decay.py +++ b/openmc/data/decay.py @@ -465,11 +465,10 @@ class Decay(EqualityMixin): @property def decay_constant(self): - if hasattr(self.half_life, 'n'): - return log(2.)/self.half_life - else: - mu, sigma = self.half_life - return ufloat(log(2.)/mu, log(2.)/mu**2*sigma) + if self.half_life.n == 0.0: + name = self.nuclide['name'] + raise ValueError(f"{name} is listed as unstable but has a zero half-life.") + return log(2.)/self.half_life @property def decay_energy(self): From 3c20b1e415e89b1b2b2b8e4953710f0b6851fb62 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 28 Jun 2022 08:00:16 -0500 Subject: [PATCH 050/119] Fix use of get_nuclide_atom_densities in Material.activity property --- openmc/material.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmc/material.py b/openmc/material.py index ea42d64b1..1341746dc 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -86,6 +86,9 @@ class Material(IDManagerMixin): fissionable_mass : float Mass of fissionable nuclides in the material in [g]. Requires that the :attr:`volume` attribute is set. + activity : float + Activity of the material in [Bq]. Requires that the :attr:`volume` + attribute is set. """ @@ -152,7 +155,7 @@ class Material(IDManagerMixin): for key, value in atoms_per_barn_cm.items(): half_life = openmc.data.half_life(key) if half_life: - total_activity += value[1] / half_life + total_activity += value / half_life total_activity *= math.log(2) * 1e24 * self.volume return total_activity From fc615451d04c358d0f32bb72837fc52992fb39b0 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Tue, 28 Jun 2022 15:54:49 +0200 Subject: [PATCH 051/119] added method to Tally --- openmc/tallies.py | 86 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/openmc/tallies.py b/openmc/tallies.py index d0355f14e..f559c392c 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -8,6 +8,8 @@ from pathlib import Path from xml.etree import ElementTree as ET import h5py +import vtk +import vtk.util.numpy_support as nps import numpy as np import pandas as pd import scipy.sparse as sps @@ -457,6 +459,54 @@ class Tally(IDManagerMixin): self._std_dev = np.reshape(self._std_dev.toarray(), self.shape) self._sparse = False + def write_to_vtk(self, filename): + mesh = None + for f in self.filters: + if isinstance(f, openmc.MeshFilter): + if isinstance(f.mesh, (openmc.RegularMesh, openmc.CylindricalMesh)): + mesh = f.mesh + break + + if not mesh: + raise ValueError( + "write_to_vtk only works with openmc.RegularMesh, openmc.CylindricalMesh" + ) + + if isinstance(mesh, openmc.RegularMesh): + vtk_grid = voxels_to_vtk( + x_vals=np.linspace( + mesh.lower_left[0], + mesh.upper_right[0], + num=mesh.dimension[0] + 1, + ), + y_vals=np.linspace( + mesh.lower_left[1], + mesh.upper_right[1], + num=mesh.dimension[1] + 1, + ), + z_vals=np.linspace( + mesh.lower_left[2], + mesh.upper_right[2], + num=mesh.dimension[2] + 1, + ), + mean=self.mean, + std_dev=self.std_dev, + cylindrical=False, + ) + elif isinstance(mesh, openmc.CylindricalMesh): + vtk_grid = voxels_to_vtk( + x_vals=mesh.r_grid, + y_vals=mesh.phi_grid, + z_vals=mesh.z_grid, + mean=self.mean, + std_dev=self.std_dev, + cylindrical=True, + ) + writer = vtk.vtkStructuredGridWriter() + writer.SetFileName(filename) + writer.SetInputData(vtk_grid) + writer.Write() + def remove_score(self, score): """Remove a score from the tally @@ -3229,3 +3279,39 @@ class Tallies(cv.CheckedList): tallies.append(tally) return cls(tallies) + + +def voxels_to_vtk(x_vals, y_vals, z_vals, mean, std_dev, cylindrical=True): + vtk_box = vtk.vtkStructuredGrid() + + vtk_box.SetDimensions(len(x_vals), len(y_vals), len(z_vals)) + + # points + points = np.array([[x, y, z] for z in z_vals for y in y_vals for x in x_vals]) + if cylindrical: + points_cartesian = np.copy(points) + r = points[:, 0] + phi = points[:, 1] + z = points[:, 2] + points_cartesian[:, 0] = r * np.cos(phi) + points_cartesian[:, 1] = r * np.sin(phi) + points_cartesian[:, 2] = z + + vtkPts = vtk.vtkPoints() + vtkPts.SetData(nps.numpy_to_vtk(points, deep=True)) + + vtk_box.SetPoints(vtkPts) + + # # data + mean_array = vtk.vtkDoubleArray() + mean_array.SetName("mean") + mean_array.SetArray(mean, mean.size, True) + + std_dev_array = vtk.vtkDoubleArray() + std_dev_array.SetName("std_dev") + std_dev_array.SetArray(std_dev, std_dev.size, True) + + vtk_box.GetCellData().AddArray(mean_array) + vtk_box.GetCellData().AddArray(std_dev_array) + + return vtk_box From e870ab2040e6d2a9894eb99e413a5174f83ae546 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Tue, 28 Jun 2022 16:00:54 +0200 Subject: [PATCH 052/119] added RectilinearMesh --- openmc/tallies.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/openmc/tallies.py b/openmc/tallies.py index f559c392c..20e6e3996 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -463,13 +463,13 @@ class Tally(IDManagerMixin): mesh = None for f in self.filters: if isinstance(f, openmc.MeshFilter): - if isinstance(f.mesh, (openmc.RegularMesh, openmc.CylindricalMesh)): + if isinstance(f.mesh, (openmc.RegularMesh, openmc.RectilinearMesh, openmc.CylindricalMesh)): mesh = f.mesh break if not mesh: raise ValueError( - "write_to_vtk only works with openmc.RegularMesh, openmc.CylindricalMesh" + "write_to_vtk only works with openmc.RegularMesh, openmc.RectilinearMesh, openmc.CylindricalMesh" ) if isinstance(mesh, openmc.RegularMesh): @@ -493,6 +493,15 @@ class Tally(IDManagerMixin): std_dev=self.std_dev, cylindrical=False, ) + if isinstance(mesh, openmc.RectilinearMesh): + vtk_grid = voxels_to_vtk( + x_vals=mesh.x_grid, + y_vals=mesh.y_grid, + z_vals=mesh.z_grid, + mean=self.mean, + std_dev=self.std_dev, + cylindrical=False, + ) elif isinstance(mesh, openmc.CylindricalMesh): vtk_grid = voxels_to_vtk( x_vals=mesh.r_grid, From 06c5d3ec584c9ef9a62b08c561945b34e2e6b4e9 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Tue, 28 Jun 2022 16:04:33 +0200 Subject: [PATCH 053/119] added comments --- openmc/tallies.py | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/openmc/tallies.py b/openmc/tallies.py index 20e6e3996..6797253e1 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -460,6 +460,7 @@ class Tally(IDManagerMixin): self._sparse = False def write_to_vtk(self, filename): + # check that tally has a MeshFilter mesh = None for f in self.filters: if isinstance(f, openmc.MeshFilter): @@ -511,6 +512,8 @@ class Tally(IDManagerMixin): std_dev=self.std_dev, cylindrical=True, ) + + # write the .vtk file writer = vtk.vtkStructuredGridWriter() writer.SetFileName(filename) writer.SetInputData(vtk_grid) @@ -3291,36 +3294,32 @@ class Tallies(cv.CheckedList): def voxels_to_vtk(x_vals, y_vals, z_vals, mean, std_dev, cylindrical=True): - vtk_box = vtk.vtkStructuredGrid() + vtk_grid = vtk.vtkStructuredGrid() - vtk_box.SetDimensions(len(x_vals), len(y_vals), len(z_vals)) + vtk_grid.SetDimensions(len(x_vals), len(y_vals), len(z_vals)) - # points + # create points points = np.array([[x, y, z] for z in z_vals for y in y_vals for x in x_vals]) - if cylindrical: + if cylindrical: # transform points to cartesian coordinates points_cartesian = np.copy(points) - r = points[:, 0] - phi = points[:, 1] - z = points[:, 2] + r, phi, z = points[:, 0], points[:, 1], points[:, 2] points_cartesian[:, 0] = r * np.cos(phi) points_cartesian[:, 1] = r * np.sin(phi) points_cartesian[:, 2] = z vtkPts = vtk.vtkPoints() vtkPts.SetData(nps.numpy_to_vtk(points, deep=True)) + vtk_grid.SetPoints(vtkPts) - vtk_box.SetPoints(vtkPts) - - # # data + # add mean and std dev data mean_array = vtk.vtkDoubleArray() mean_array.SetName("mean") mean_array.SetArray(mean, mean.size, True) + vtk_grid.GetCellData().AddArray(mean_array) std_dev_array = vtk.vtkDoubleArray() std_dev_array.SetName("std_dev") std_dev_array.SetArray(std_dev, std_dev.size, True) + vtk_grid.GetCellData().AddArray(std_dev_array) - vtk_box.GetCellData().AddArray(mean_array) - vtk_box.GetCellData().AddArray(std_dev_array) - - return vtk_box + return vtk_grid From 30b06fa2910a51ac04a249170bff27d54cb3f26a Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Tue, 28 Jun 2022 16:08:36 +0200 Subject: [PATCH 054/119] docstrings --- openmc/tallies.py | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/openmc/tallies.py b/openmc/tallies.py index 6797253e1..77f0b8cd3 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -460,6 +460,15 @@ class Tally(IDManagerMixin): self._sparse = False def write_to_vtk(self, filename): + """Writes the tally to a vtk file + + Args: + filename (str): the filename (must end with .vtk) + + Raises: + ValueError: if no MeshFilter with appropriate mesh was found + (SphericalMesh not supported) + """ # check that tally has a MeshFilter mesh = None for f in self.filters: @@ -512,7 +521,7 @@ class Tally(IDManagerMixin): std_dev=self.std_dev, cylindrical=True, ) - + # write the .vtk file writer = vtk.vtkStructuredGridWriter() writer.SetFileName(filename) @@ -3294,6 +3303,20 @@ class Tallies(cv.CheckedList): def voxels_to_vtk(x_vals, y_vals, z_vals, mean, std_dev, cylindrical=True): + """Creates a vtk object from a list of X, Y, Z values and mean/std_dev data. + + Args: + x_vals (list): X values. + y_vals (list): Y values. + z_vals (list): Z values. + mean (np.array): the tally mean. + std_dev (np.array): the tally standard deviation. + cylindrical (bool, optional): If set to True, cylindrical coordinates + (r, phi, z) are assumed. Defaults to True. + + Returns: + vtkStructuredGrid: a vtk object containing tally data on the appropriate grid + """ vtk_grid = vtk.vtkStructuredGrid() vtk_grid.SetDimensions(len(x_vals), len(y_vals), len(z_vals)) From 06c6bcd7d269aa3b3317c8d64f9cf4318170468c Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Tue, 28 Jun 2022 16:09:32 +0200 Subject: [PATCH 055/119] added TODO --- openmc/tallies.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openmc/tallies.py b/openmc/tallies.py index 77f0b8cd3..c0f410524 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -3317,6 +3317,9 @@ def voxels_to_vtk(x_vals, y_vals, z_vals, mean, std_dev, cylindrical=True): Returns: vtkStructuredGrid: a vtk object containing tally data on the appropriate grid """ + + # TODO: should this be a method of Tally? + vtk_grid = vtk.vtkStructuredGrid() vtk_grid.SetDimensions(len(x_vals), len(y_vals), len(z_vals)) From 877a62c0af072e14c3b62991f21a6648352dc8bb Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Tue, 28 Jun 2022 16:43:42 +0200 Subject: [PATCH 056/119] fixed cylindrical --- openmc/tallies.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openmc/tallies.py b/openmc/tallies.py index c0f410524..2e31e8ee2 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -3332,6 +3332,7 @@ def voxels_to_vtk(x_vals, y_vals, z_vals, mean, std_dev, cylindrical=True): points_cartesian[:, 0] = r * np.cos(phi) points_cartesian[:, 1] = r * np.sin(phi) points_cartesian[:, 2] = z + points = points_cartesian vtkPts = vtk.vtkPoints() vtkPts.SetData(nps.numpy_to_vtk(points, deep=True)) From 1eb8670f2b93cbbb42912dd7903c1d1ae18b1d33 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Tue, 28 Jun 2022 16:46:10 +0200 Subject: [PATCH 057/119] mean and std_dev are np.zeros if None (for testing without running a sim) --- openmc/tallies.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/openmc/tallies.py b/openmc/tallies.py index 2e31e8ee2..75c7ea8f3 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -3341,11 +3341,23 @@ def voxels_to_vtk(x_vals, y_vals, z_vals, mean, std_dev, cylindrical=True): # add mean and std dev data mean_array = vtk.vtkDoubleArray() mean_array.SetName("mean") + if mean is None: + mean = np.zeros( + (len(x_vals) - 1) + * (len(y_vals) - 1) + * (len(z_vals) - 1) + ) mean_array.SetArray(mean, mean.size, True) vtk_grid.GetCellData().AddArray(mean_array) std_dev_array = vtk.vtkDoubleArray() std_dev_array.SetName("std_dev") + if std_dev is None: + std_dev = np.zeros( + (len(x_vals) - 1) + * (len(y_vals) - 1) + * (len(z_vals) - 1) + ) std_dev_array.SetArray(std_dev, std_dev.size, True) vtk_grid.GetCellData().AddArray(std_dev_array) From 3d0b404b7a99388296dda50d087d267bf3c6f917 Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Tue, 28 Jun 2022 16:06:17 +0100 Subject: [PATCH 058/119] added multi stages option --- Dockerfile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 755d9f2a0..152590161 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,7 +15,7 @@ # sudo docker run image_name:tag_name or ID with no tag sudo docker run ID number -FROM debian:bullseye-slim +FROM debian:bullseye-slim AS dependencies # By default this Dockerfile builds OpenMC without DAGMC and LIBMESH support ARG build_dagmc=off @@ -172,6 +172,8 @@ RUN if [ "$build_libmesh" = "on" ]; then \ && rm -rf ${LIBMESH_INSTALL_DIR}/build ${LIBMESH_INSTALL_DIR}/libmesh ; \ fi +FROM dependencies as build + # clone and install openmc RUN mkdir -p ${HOME}/OpenMC && cd ${HOME}/OpenMC \ && git clone --shallow-submodules --recurse-submodules --single-branch -b ${openmc_branch} --depth=1 ${OPENMC_REPO} \ @@ -207,5 +209,7 @@ RUN mkdir -p ${HOME}/OpenMC && cd ${HOME}/OpenMC \ && cd ../openmc && pip install .[test,depletion-mpi] \ && python -c "import openmc" +FROM build as release + # Download cross sections (NNDC and WMP) and ENDF data needed by test suite RUN ${HOME}/OpenMC/openmc/tools/ci/download-xs.sh From 419351bb260f837386bcd5c6e798405638820e17 Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Tue, 28 Jun 2022 16:14:52 +0100 Subject: [PATCH 059/119] uppercase AS --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 152590161..341390c9a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -172,7 +172,7 @@ RUN if [ "$build_libmesh" = "on" ]; then \ && rm -rf ${LIBMESH_INSTALL_DIR}/build ${LIBMESH_INSTALL_DIR}/libmesh ; \ fi -FROM dependencies as build +FROM dependencies AS build # clone and install openmc RUN mkdir -p ${HOME}/OpenMC && cd ${HOME}/OpenMC \ @@ -209,7 +209,7 @@ RUN mkdir -p ${HOME}/OpenMC && cd ${HOME}/OpenMC \ && cd ../openmc && pip install .[test,depletion-mpi] \ && python -c "import openmc" -FROM build as release +FROM build AS release # Download cross sections (NNDC and WMP) and ENDF data needed by test suite RUN ${HOME}/OpenMC/openmc/tools/ci/download-xs.sh From 782d987fc836494166ffb66ab9e9f81888666582 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Delaporte-Mathurin?= <40028739+RemDelaporteMathurin@users.noreply.github.com> Date: Tue, 28 Jun 2022 20:18:52 +0200 Subject: [PATCH 060/119] Optional vtk import Co-authored-by: Jonathan Shimwell --- openmc/tallies.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/openmc/tallies.py b/openmc/tallies.py index 75c7ea8f3..b795fc83a 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -8,8 +8,6 @@ from pathlib import Path from xml.etree import ElementTree as ET import h5py -import vtk -import vtk.util.numpy_support as nps import numpy as np import pandas as pd import scipy.sparse as sps @@ -470,6 +468,12 @@ class Tally(IDManagerMixin): (SphericalMesh not supported) """ # check that tally has a MeshFilter + try: + import vtk + import vtk.util.numpy_support as nps + except ImportError: + msg = 'Python package vtk was not found, please install vtk to use Tally.write_to_vtk.' + raise ImportError(msg) mesh = None for f in self.filters: if isinstance(f, openmc.MeshFilter): From 7723ea492c12e17c2a8e2bef8f301386410b15a3 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 28 Jun 2022 09:45:38 -0500 Subject: [PATCH 061/119] Add Material.get_nuclide_activity method and decay_constant function --- docs/source/pythonapi/data.rst | 1 + openmc/data/data.py | 35 ++++++++++++++++++++++++++++-- openmc/material.py | 30 +++++++++++++++---------- tests/unit_tests/test_data_misc.py | 13 ++++++++++- 4 files changed, 64 insertions(+), 15 deletions(-) diff --git a/docs/source/pythonapi/data.rst b/docs/source/pythonapi/data.rst index 6f5c006c2..287738774 100644 --- a/docs/source/pythonapi/data.rst +++ b/docs/source/pythonapi/data.rst @@ -61,6 +61,7 @@ Core Functions atomic_mass atomic_weight + decay_constant dose_coefficients gnd_name half_life diff --git a/openmc/data/data.py b/openmc/data/data.py index 3a3cf5826..71b93293e 100644 --- a/openmc/data/data.py +++ b/openmc/data/data.py @@ -3,7 +3,7 @@ import json import os import re from pathlib import Path -from math import sqrt +from math import sqrt, log from warnings import warn # Isotopic abundances from Meija J, Coplen T B, et al, "Isotopic compositions @@ -202,7 +202,7 @@ _GND_NAME_RE = re.compile(r'([A-Zn][a-z]*)(\d+)((?:_[em]\d+)?)') # Used in half_life function as a cache _HALF_LIFE = {} - +_LOG_TWO = log(2.0) def atomic_mass(isotope): """Return atomic mass of isotope in atomic mass units. @@ -283,6 +283,8 @@ def half_life(isotope): Half-life values are from the `ENDF/B-VIII.0 decay sublibrary `_. + .. versionadded:: 0.13.1 + Parameters ---------- isotope : str @@ -302,6 +304,35 @@ def half_life(isotope): return _HALF_LIFE.get(isotope.lower()) + +def decay_constant(isotope): + """Return decay constant of isotope in [s^-1] + + Decay constants are based on half-life values from the + :func:`~openmc.data.half_life` function. When the isotope is stable, a decay + constant of zero is returned. + + .. versionadded:: 0.13.1 + + Parameters + ---------- + isotope : str + Name of isotope, e.g., 'Pu239' + + Returns + ------- + float + Decay constant of isotope in [s^-1] + + See also + -------- + openmc.data.half_life + + """ + t = half_life(isotope) + return _LOG_TWO / t if t else 0.0 + + def water_density(temperature, pressure=0.1013): """Return the density of liquid water at a given temperature and pressure. diff --git a/openmc/material.py b/openmc/material.py index 1341746dc..e8285de7c 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -3,7 +3,6 @@ from collections.abc import Iterable from copy import deepcopy from numbers import Real from pathlib import Path -import math import re import warnings from xml.etree import ElementTree as ET @@ -145,20 +144,10 @@ class Material(IDManagerMixin): return string - @property def activity(self): """Returns the total activity of the material in Becquerels.""" - - atoms_per_barn_cm = self.get_nuclide_atom_densities() - total_activity = 0 - for key, value in atoms_per_barn_cm.items(): - half_life = openmc.data.half_life(key) - if half_life: - total_activity += value / half_life - total_activity *= math.log(2) * 1e24 * self.volume - - return total_activity + return sum(self.get_nuclide_activity().values()) @property def name(self): @@ -861,6 +850,23 @@ class Material(IDManagerMixin): return nuclides + def get_nuclide_activity(self): + """Return activity in [Bq] for each nuclide in the material + + .. versionadded:: 0.13.1 + + Returns + ------- + dict + Dictionary whose keys are nuclide names and values are activity in + [Bq]. + """ + activity = {} + for nuclide, atoms in self.get_nuclide_atoms().items(): + inv_seconds = openmc.data.decay_constant(nuclide) + activity[nuclide] = inv_seconds * atoms + return activity + def get_nuclide_atoms(self): """Return number of atoms of each nuclide in the material diff --git a/tests/unit_tests/test_data_misc.py b/tests/unit_tests/test_data_misc.py index 6a81fb1e0..c3f7e3cff 100644 --- a/tests/unit_tests/test_data_misc.py +++ b/tests/unit_tests/test_data_misc.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -from collections.abc import Mapping +from math import log import os from pathlib import Path @@ -126,3 +126,14 @@ def test_zam(): assert openmc.data.zam('Am242_m10') == (95, 242, 10) with pytest.raises(ValueError): openmc.data.zam('garbage') + + +def test_half_life(): + assert openmc.data.half_life('H2') is None + assert openmc.data.half_life('U235') == pytest.approx(2.22102e16) + assert openmc.data.half_life('Am242') == pytest.approx(57672.0) + assert openmc.data.half_life('Am242_m1') == pytest.approx(4449622000.0) + assert openmc.data.decay_constant('H2') == 0.0 + assert openmc.data.decay_constant('U235') == pytest.approx(log(2.0)/2.22102e16) + assert openmc.data.decay_constant('Am242') == pytest.approx(log(2.0)/57672.0) + assert openmc.data.decay_constant('Am242_m1') == pytest.approx(log(2.0)/4449622000.0) From 6eaab920eeaddac452ad07e25015357c3658f139 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 08:18:10 +0200 Subject: [PATCH 062/119] better error catching --- openmc/tallies.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/openmc/tallies.py b/openmc/tallies.py index b795fc83a..faa7c3efe 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -471,9 +471,12 @@ class Tally(IDManagerMixin): try: import vtk import vtk.util.numpy_support as nps - except ImportError: + except ModuleNotFoundError: msg = 'Python package vtk was not found, please install vtk to use Tally.write_to_vtk.' - raise ImportError(msg) + raise ModuleNotFoundError(msg) + except ImportError as err: + raise err + mesh = None for f in self.filters: if isinstance(f, openmc.MeshFilter): From fb40ba894addb3ab87226e80e631aaa6288dafa6 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 08:18:22 +0200 Subject: [PATCH 063/119] moved comment statement --- openmc/tallies.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/tallies.py b/openmc/tallies.py index faa7c3efe..bec0ddc6f 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -467,7 +467,6 @@ class Tally(IDManagerMixin): ValueError: if no MeshFilter with appropriate mesh was found (SphericalMesh not supported) """ - # check that tally has a MeshFilter try: import vtk import vtk.util.numpy_support as nps @@ -477,6 +476,7 @@ class Tally(IDManagerMixin): except ImportError as err: raise err + # check that tally has a MeshFilter mesh = None for f in self.filters: if isinstance(f, openmc.MeshFilter): From dacd3b75b855d8f28da8f7eedea4e6508c20fd80 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 08:20:25 +0200 Subject: [PATCH 064/119] moved import to voxels_to_vtk --- openmc/tallies.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/openmc/tallies.py b/openmc/tallies.py index bec0ddc6f..fbf2962b9 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -467,15 +467,6 @@ class Tally(IDManagerMixin): ValueError: if no MeshFilter with appropriate mesh was found (SphericalMesh not supported) """ - try: - import vtk - import vtk.util.numpy_support as nps - except ModuleNotFoundError: - msg = 'Python package vtk was not found, please install vtk to use Tally.write_to_vtk.' - raise ModuleNotFoundError(msg) - except ImportError as err: - raise err - # check that tally has a MeshFilter mesh = None for f in self.filters: @@ -3324,7 +3315,14 @@ def voxels_to_vtk(x_vals, y_vals, z_vals, mean, std_dev, cylindrical=True): Returns: vtkStructuredGrid: a vtk object containing tally data on the appropriate grid """ - + try: + import vtk + import vtk.util.numpy_support as nps + except ModuleNotFoundError: + msg = 'Python package vtk was not found, please install vtk to use Tally.write_to_vtk.' + raise ModuleNotFoundError(msg) + except ImportError as err: + raise err # TODO: should this be a method of Tally? vtk_grid = vtk.vtkStructuredGrid() From 9ec0a0a3df1a90783e1b0e60701f972275ffd17e Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 08:42:32 +0200 Subject: [PATCH 065/119] refactoring --- openmc/tallies.py | 105 +++++++++++++++++++++++----------------------- 1 file changed, 53 insertions(+), 52 deletions(-) diff --git a/openmc/tallies.py b/openmc/tallies.py index fbf2962b9..a25d535e5 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -464,61 +464,29 @@ class Tally(IDManagerMixin): filename (str): the filename (must end with .vtk) Raises: - ValueError: if no MeshFilter with appropriate mesh was found - (SphericalMesh not supported) + ValueError: if no MeshFilter was found """ + try: + import vtk + except ModuleNotFoundError: + msg = 'Python package vtk was not found, please install vtk to use Tally.write_to_vtk.' + raise ModuleNotFoundError(msg) + except ImportError as err: + raise err + # check that tally has a MeshFilter mesh = None for f in self.filters: if isinstance(f, openmc.MeshFilter): - if isinstance(f.mesh, (openmc.RegularMesh, openmc.RectilinearMesh, openmc.CylindricalMesh)): - mesh = f.mesh - break + mesh = f.mesh + break if not mesh: raise ValueError( - "write_to_vtk only works with openmc.RegularMesh, openmc.RectilinearMesh, openmc.CylindricalMesh" + "write_to_vtk requires a MeshFilter in the tally filters" ) - if isinstance(mesh, openmc.RegularMesh): - vtk_grid = voxels_to_vtk( - x_vals=np.linspace( - mesh.lower_left[0], - mesh.upper_right[0], - num=mesh.dimension[0] + 1, - ), - y_vals=np.linspace( - mesh.lower_left[1], - mesh.upper_right[1], - num=mesh.dimension[1] + 1, - ), - z_vals=np.linspace( - mesh.lower_left[2], - mesh.upper_right[2], - num=mesh.dimension[2] + 1, - ), - mean=self.mean, - std_dev=self.std_dev, - cylindrical=False, - ) - if isinstance(mesh, openmc.RectilinearMesh): - vtk_grid = voxels_to_vtk( - x_vals=mesh.x_grid, - y_vals=mesh.y_grid, - z_vals=mesh.z_grid, - mean=self.mean, - std_dev=self.std_dev, - cylindrical=False, - ) - elif isinstance(mesh, openmc.CylindricalMesh): - vtk_grid = voxels_to_vtk( - x_vals=mesh.r_grid, - y_vals=mesh.phi_grid, - z_vals=mesh.z_grid, - mean=self.mean, - std_dev=self.std_dev, - cylindrical=True, - ) + vtk_grid = voxels_to_vtk(mesh, self.mean, self.std_dev) # write the .vtk file writer = vtk.vtkStructuredGridWriter() @@ -3300,20 +3268,20 @@ class Tallies(cv.CheckedList): return cls(tallies) -def voxels_to_vtk(x_vals, y_vals, z_vals, mean, std_dev, cylindrical=True): +def voxels_to_vtk(mesh, mean, std_dev): """Creates a vtk object from a list of X, Y, Z values and mean/std_dev data. Args: - x_vals (list): X values. - y_vals (list): Y values. - z_vals (list): Z values. + mesh (openmc.StructuredMesh): The tallied mesh (SphericalMesh is not yet supported). mean (np.array): the tally mean. std_dev (np.array): the tally standard deviation. - cylindrical (bool, optional): If set to True, cylindrical coordinates - (r, phi, z) are assumed. Defaults to True. Returns: vtkStructuredGrid: a vtk object containing tally data on the appropriate grid + + Raises: + ValueError: if mesh is not openmc.RegularMesh, openmc.RectilinearMesh or + openmc.CylindricalMesh """ try: import vtk @@ -3325,13 +3293,46 @@ def voxels_to_vtk(x_vals, y_vals, z_vals, mean, std_dev, cylindrical=True): raise err # TODO: should this be a method of Tally? + system_of_coordinates = "cartesian" + + if isinstance(mesh, openmc.RegularMesh): + print('coucou') + x_vals = np.linspace( + mesh.lower_left[0], + mesh.upper_right[0], + num=mesh.dimension[0] + 1, + ) + y_vals = np.linspace( + mesh.lower_left[1], + mesh.upper_right[1], + num=mesh.dimension[1] + 1, + ) + z_vals = np.linspace( + mesh.lower_left[2], + mesh.upper_right[2], + num=mesh.dimension[2] + 1, + ) + elif isinstance(mesh, openmc.RectilinearMesh): + x_vals = mesh.x_grid + y_vals = mesh.y_grid + z_vals = mesh.z_grid + elif isinstance(mesh, openmc.CylindricalMesh): + x_vals = mesh.r_grid + y_vals = mesh.phi_grid + z_vals = mesh.z_grid + system_of_coordinates = "cylindrical" + else: + print(type(mesh)) + raise ValueError( + "voxels_to_vtk only works with openmc.RegularMesh, openmc.RectilinearMesh, openmc.CylindricalMesh" + ) vtk_grid = vtk.vtkStructuredGrid() vtk_grid.SetDimensions(len(x_vals), len(y_vals), len(z_vals)) # create points points = np.array([[x, y, z] for z in z_vals for y in y_vals for x in x_vals]) - if cylindrical: # transform points to cartesian coordinates + if system_of_coordinates == "cylindrical": # transform points to cartesian coordinates points_cartesian = np.copy(points) r, phi, z = points[:, 0], points[:, 1], points[:, 2] points_cartesian[:, 0] = r * np.cos(phi) From 11cee75e46ebc7e9756d81dbfae3452ff824cc10 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 09:12:28 +0200 Subject: [PATCH 066/119] put write_to_vtk method at the end --- openmc/tallies.py | 74 +++++++++++++++++++++++------------------------ 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/openmc/tallies.py b/openmc/tallies.py index a25d535e5..198f5581b 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -457,43 +457,6 @@ class Tally(IDManagerMixin): self._std_dev = np.reshape(self._std_dev.toarray(), self.shape) self._sparse = False - def write_to_vtk(self, filename): - """Writes the tally to a vtk file - - Args: - filename (str): the filename (must end with .vtk) - - Raises: - ValueError: if no MeshFilter was found - """ - try: - import vtk - except ModuleNotFoundError: - msg = 'Python package vtk was not found, please install vtk to use Tally.write_to_vtk.' - raise ModuleNotFoundError(msg) - except ImportError as err: - raise err - - # check that tally has a MeshFilter - mesh = None - for f in self.filters: - if isinstance(f, openmc.MeshFilter): - mesh = f.mesh - break - - if not mesh: - raise ValueError( - "write_to_vtk requires a MeshFilter in the tally filters" - ) - - vtk_grid = voxels_to_vtk(mesh, self.mean, self.std_dev) - - # write the .vtk file - writer = vtk.vtkStructuredGridWriter() - writer.SetFileName(filename) - writer.SetInputData(vtk_grid) - writer.Write() - def remove_score(self, score): """Remove a score from the tally @@ -3050,6 +3013,43 @@ class Tally(IDManagerMixin): new_tally.sparse = self.sparse return new_tally + def write_to_vtk(self, filename): + """Writes the tally to a vtk file + + Args: + filename (str): the filename (must end with .vtk) + + Raises: + ValueError: if no MeshFilter was found + """ + try: + import vtk + except ModuleNotFoundError: + msg = 'Python package vtk was not found, please install vtk to use Tally.write_to_vtk.' + raise ModuleNotFoundError(msg) + except ImportError as err: + raise err + + # check that tally has a MeshFilter + mesh = None + for f in self.filters: + if isinstance(f, openmc.MeshFilter): + mesh = f.mesh + break + + if not mesh: + raise ValueError( + "write_to_vtk requires a MeshFilter in the tally filters" + ) + + vtk_grid = voxels_to_vtk(mesh, self.mean, self.std_dev) + + # write the .vtk file + writer = vtk.vtkStructuredGridWriter() + writer.SetFileName(filename) + writer.SetInputData(vtk_grid) + writer.Write() + class Tallies(cv.CheckedList): """Collection of Tallies used for an OpenMC simulation. From bff8bc4b459030448749e587fb0fde2cf53d48f9 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 09:16:40 +0200 Subject: [PATCH 067/119] added tests --- tests/unit_tests/test_tallies.py | 62 ++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/tests/unit_tests/test_tallies.py b/tests/unit_tests/test_tallies.py index aeeb0612d..b6fc6cc47 100644 --- a/tests/unit_tests/test_tallies.py +++ b/tests/unit_tests/test_tallies.py @@ -1,4 +1,8 @@ import numpy as np +import pytest +import vtk +from os.path import exists + import openmc @@ -38,3 +42,61 @@ def test_xml_roundtrip(run_in_tmpdir): assert new_tally.triggers[0].trigger_type == tally.triggers[0].trigger_type assert new_tally.triggers[0].threshold == tally.triggers[0].threshold assert new_tally.triggers[0].scores == tally.triggers[0].scores + + +cylinder_mesh = openmc.CylindricalMesh() +cylinder_mesh.r_grid = np.linspace(1, 2, num=30) +cylinder_mesh.phi_grid = np.linspace(0, np.pi / 2, num=50) +cylinder_mesh.z_grid = np.linspace(0, 1, num=30) + +regular_mesh = openmc.RegularMesh() +regular_mesh.lower_left = [0, 0, 0] +regular_mesh.upper_right = [1, 1, 1] +regular_mesh.dimension = [10, 5, 6] + +rectilinear_mesh = openmc.RectilinearMesh() +rectilinear_mesh.x_grid = np.linspace(0, 1) +rectilinear_mesh.y_grid = np.linspace(0, 1) +rectilinear_mesh.z_grid = np.linspace(0, 1) + + +@pytest.mark.parametrize("mesh", [cylinder_mesh, regular_mesh, rectilinear_mesh]) +def test_voxels_to_vtk(mesh): + vtk_grid = openmc.voxels_to_vtk(mesh, mean=None, std_dev=None) + assert isinstance(vtk_grid, vtk.vtkStructuredGrid) + + +@pytest.mark.parametrize("mesh", [cylinder_mesh, regular_mesh, rectilinear_mesh]) +def test_write_to_vtk(mesh, tmpdir): + # build + tally = openmc.Tally() + tally.filters = [openmc.MeshFilter(mesh)] + filename = tmpdir / "out.vtk" + # run + tally.write_to_vtk(filename) + # test + assert exists(filename) + + +def test_write_to_vtk_raises_error_when_no_meshfilter(): + # build + tally = openmc.Tally() + + # test + expected_err_msg = "write_to_vtk requires a MeshFilter in the tally filters" + with pytest.raises(ValueError, match=expected_err_msg): + tally.write_to_vtk("out.vtk") + + +def test_voxel_to_vtk_raises_error_with_wrong_mesh(): + # build + tally = openmc.Tally() + spherical_mesh = openmc.SphericalMesh() + spherical_mesh.r_grid = np.linspace(1, 2) + spherical_mesh.phi_grid = np.linspace(1, 2) + spherical_mesh.theta_grid = np.linspace(1, 2) + tally.filters = [openmc.MeshFilter(spherical_mesh)] + # test + expected_err_msg = "voxels_to_vtk only works with openmc.RegularMesh, openmc.RectilinearMesh, openmc.CylindricalMesh" + with pytest.raises(ValueError, match=expected_err_msg): + tally.write_to_vtk("out.vtk") \ No newline at end of file From b61ec91d781caf8e7ca593a98c76d916a8efa94e Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 09:50:28 +0200 Subject: [PATCH 068/119] removed print statement --- openmc/tallies.py | 1 - 1 file changed, 1 deletion(-) diff --git a/openmc/tallies.py b/openmc/tallies.py index 198f5581b..88f747249 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -3296,7 +3296,6 @@ def voxels_to_vtk(mesh, mean, std_dev): system_of_coordinates = "cartesian" if isinstance(mesh, openmc.RegularMesh): - print('coucou') x_vals = np.linspace( mesh.lower_left[0], mesh.upper_right[0], From cac84d6e1f76b69d28da8674fcf81011170cf446 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 09:50:42 +0200 Subject: [PATCH 069/119] removd print statement --- openmc/tallies.py | 1 - 1 file changed, 1 deletion(-) diff --git a/openmc/tallies.py b/openmc/tallies.py index 88f747249..020d4a3d9 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -3321,7 +3321,6 @@ def voxels_to_vtk(mesh, mean, std_dev): z_vals = mesh.z_grid system_of_coordinates = "cylindrical" else: - print(type(mesh)) raise ValueError( "voxels_to_vtk only works with openmc.RegularMesh, openmc.RectilinearMesh, openmc.CylindricalMesh" ) From 7be28ef156a96fb4c525130d9c52e6966cf43539 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 11:08:58 +0200 Subject: [PATCH 070/119] added vtk_grid to meshes --- openmc/mesh.py | 99 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/openmc/mesh.py b/openmc/mesh.py index 7f7b07879..dbdfb10b0 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -621,7 +621,45 @@ class RegularMesh(StructuredMesh): root_cell.fill = lattice return root_cell, cells + + def vtk_grid(self, filename=None): + import vtk + from vtk.util import numpy_support as nps + x_vals = np.linspace( + self.lower_left[0], + self.upper_right[0], + num=self.dimension[0] + 1, + ) + y_vals = np.linspace( + self.lower_left[1], + self.upper_right[1], + num=self.dimension[1] + 1, + ) + z_vals = np.linspace( + self.lower_left[2], + self.upper_right[2], + num=self.dimension[2] + 1, + ) + vtk_grid = vtk.vtkStructuredGrid() + + vtk_grid.SetDimensions(len(x_vals), len(y_vals), len(z_vals)) + + # create points + pts_cartesian = np.array([[x, y, z] for z in z_vals for y in y_vals for x in x_vals]) + + vtkPts = vtk.vtkPoints() + vtkPts.SetData(nps.numpy_to_vtk(pts_cartesian, deep=True)) + vtk_grid.SetPoints(vtkPts) + + if filename: + # write the .vtk file + writer = vtk.vtkStructuredGridWriter() + writer.SetFileName(filename) + writer.SetInputData(vtk_grid) + writer.Write() + + return vtk_grid def Mesh(*args, **kwargs): warnings.warn("Mesh has been renamed RegularMesh. Future versions of " @@ -821,6 +859,33 @@ class RectilinearMesh(StructuredMesh): return element + def vtk_grid(self, filename=None): + import vtk + from vtk.util import numpy_support as nps + + x_vals = self.x_grid + y_vals = self.y_grid + z_vals = self.z_grid + vtk_grid = vtk.vtkStructuredGrid() + + vtk_grid.SetDimensions(len(x_vals), len(y_vals), len(z_vals)) + + # create points + pts_cartesian = np.array([[x, y, z] for z in z_vals for y in y_vals for x in x_vals]) + + vtkPts = vtk.vtkPoints() + vtkPts.SetData(nps.numpy_to_vtk(pts_cartesian, deep=True)) + vtk_grid.SetPoints(vtkPts) + + if filename: + # write the .vtk file + writer = vtk.vtkStructuredGridWriter() + writer.SetFileName(filename) + writer.SetInputData(vtk_grid) + writer.Write() + + return vtk_grid + class CylindricalMesh(StructuredMesh): """A 3D cylindrical mesh @@ -1012,6 +1077,37 @@ class CylindricalMesh(StructuredMesh): return np.multiply.outer(np.outer(V_r, V_p), V_z) + def vtk_grid(self, filename=None): + import vtk + from vtk.util import numpy_support as nps + + r_vals = self.r_grid + phi_vals = self.phi_grid + z_vals = self.z_grid + vtk_grid = vtk.vtkStructuredGrid() + + vtk_grid.SetDimensions(len(r_vals), len(phi_vals), len(z_vals)) + + # create points + pts_cylindrical = np.array([[r, phi, z] for z in z_vals for phi in phi_vals for r in r_vals]) + pts_cartesian = np.copy(pts_cylindrical) + r, phi, z = pts_cylindrical[:, 0], pts_cylindrical[:, 1], pts_cylindrical[:, 2] + pts_cartesian[:, 0] = r * np.cos(phi) + pts_cartesian[:, 1] = r * np.sin(phi) + pts_cartesian[:, 2] = z + + vtkPts = vtk.vtkPoints() + vtkPts.SetData(nps.numpy_to_vtk(pts_cartesian, deep=True)) + vtk_grid.SetPoints(vtkPts) + + if filename: + # write the .vtk file + writer = vtk.vtkStructuredGridWriter() + writer.SetFileName(filename) + writer.SetInputData(vtk_grid) + writer.Write() + + return vtk_grid class SphericalMesh(StructuredMesh): """A 3D spherical mesh @@ -1204,6 +1300,9 @@ class SphericalMesh(StructuredMesh): return np.multiply.outer(np.outer(V_r, V_t), V_p) + def vtk_grid(self, filename=None): + raise NotImplementedError("vtk_grid not implemented for SphericalMesh") + class UnstructuredMesh(MeshBase): """A 3D unstructured mesh From 4ab6617bc4fe681bff68bce6dd4b22bf57a821d9 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 11:09:18 +0200 Subject: [PATCH 071/119] write_to_vtk makes use of mesh.vtk_grid() --- openmc/tallies.py | 113 +++++----------------------------------------- 1 file changed, 12 insertions(+), 101 deletions(-) diff --git a/openmc/tallies.py b/openmc/tallies.py index 020d4a3d9..e67365df6 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -3042,7 +3042,18 @@ class Tally(IDManagerMixin): "write_to_vtk requires a MeshFilter in the tally filters" ) - vtk_grid = voxels_to_vtk(mesh, self.mean, self.std_dev) + vtk_grid = mesh.vtk_grid() + + # add mean and std dev data + mean_array = vtk.vtkDoubleArray() + mean_array.SetName("mean") + mean_array.SetArray(self.mean, self.mean.size, True) + vtk_grid.GetCellData().AddArray(mean_array) + + std_dev_array = vtk.vtkDoubleArray() + std_dev_array.SetName("std_dev") + std_dev_array.SetArray(self.std_dev, self.std_dev.size, True) + vtk_grid.GetCellData().AddArray(std_dev_array) # write the .vtk file writer = vtk.vtkStructuredGridWriter() @@ -3266,103 +3277,3 @@ class Tallies(cv.CheckedList): tallies.append(tally) return cls(tallies) - - -def voxels_to_vtk(mesh, mean, std_dev): - """Creates a vtk object from a list of X, Y, Z values and mean/std_dev data. - - Args: - mesh (openmc.StructuredMesh): The tallied mesh (SphericalMesh is not yet supported). - mean (np.array): the tally mean. - std_dev (np.array): the tally standard deviation. - - Returns: - vtkStructuredGrid: a vtk object containing tally data on the appropriate grid - - Raises: - ValueError: if mesh is not openmc.RegularMesh, openmc.RectilinearMesh or - openmc.CylindricalMesh - """ - try: - import vtk - import vtk.util.numpy_support as nps - except ModuleNotFoundError: - msg = 'Python package vtk was not found, please install vtk to use Tally.write_to_vtk.' - raise ModuleNotFoundError(msg) - except ImportError as err: - raise err - # TODO: should this be a method of Tally? - - system_of_coordinates = "cartesian" - - if isinstance(mesh, openmc.RegularMesh): - x_vals = np.linspace( - mesh.lower_left[0], - mesh.upper_right[0], - num=mesh.dimension[0] + 1, - ) - y_vals = np.linspace( - mesh.lower_left[1], - mesh.upper_right[1], - num=mesh.dimension[1] + 1, - ) - z_vals = np.linspace( - mesh.lower_left[2], - mesh.upper_right[2], - num=mesh.dimension[2] + 1, - ) - elif isinstance(mesh, openmc.RectilinearMesh): - x_vals = mesh.x_grid - y_vals = mesh.y_grid - z_vals = mesh.z_grid - elif isinstance(mesh, openmc.CylindricalMesh): - x_vals = mesh.r_grid - y_vals = mesh.phi_grid - z_vals = mesh.z_grid - system_of_coordinates = "cylindrical" - else: - raise ValueError( - "voxels_to_vtk only works with openmc.RegularMesh, openmc.RectilinearMesh, openmc.CylindricalMesh" - ) - vtk_grid = vtk.vtkStructuredGrid() - - vtk_grid.SetDimensions(len(x_vals), len(y_vals), len(z_vals)) - - # create points - points = np.array([[x, y, z] for z in z_vals for y in y_vals for x in x_vals]) - if system_of_coordinates == "cylindrical": # transform points to cartesian coordinates - points_cartesian = np.copy(points) - r, phi, z = points[:, 0], points[:, 1], points[:, 2] - points_cartesian[:, 0] = r * np.cos(phi) - points_cartesian[:, 1] = r * np.sin(phi) - points_cartesian[:, 2] = z - points = points_cartesian - - vtkPts = vtk.vtkPoints() - vtkPts.SetData(nps.numpy_to_vtk(points, deep=True)) - vtk_grid.SetPoints(vtkPts) - - # add mean and std dev data - mean_array = vtk.vtkDoubleArray() - mean_array.SetName("mean") - if mean is None: - mean = np.zeros( - (len(x_vals) - 1) - * (len(y_vals) - 1) - * (len(z_vals) - 1) - ) - mean_array.SetArray(mean, mean.size, True) - vtk_grid.GetCellData().AddArray(mean_array) - - std_dev_array = vtk.vtkDoubleArray() - std_dev_array.SetName("std_dev") - if std_dev is None: - std_dev = np.zeros( - (len(x_vals) - 1) - * (len(y_vals) - 1) - * (len(z_vals) - 1) - ) - std_dev_array.SetArray(std_dev, std_dev.size, True) - vtk_grid.GetCellData().AddArray(std_dev_array) - - return vtk_grid From 8958b74da73e47757147ab80b22b325926291142 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 11:09:32 +0200 Subject: [PATCH 072/119] adapted tests --- tests/unit_tests/test_tallies.py | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/tests/unit_tests/test_tallies.py b/tests/unit_tests/test_tallies.py index b6fc6cc47..e49596f6d 100644 --- a/tests/unit_tests/test_tallies.py +++ b/tests/unit_tests/test_tallies.py @@ -43,6 +43,23 @@ def test_xml_roundtrip(run_in_tmpdir): assert new_tally.triggers[0].threshold == tally.triggers[0].threshold assert new_tally.triggers[0].scores == tally.triggers[0].scores +def run_dummy_sim(tally): + mat = openmc.Material() + mat.add_nuclide('Zr90', 1.0) + mat.set_density('g/cm3', 1.0) + + model = openmc.Model() + sph = openmc.Sphere(r=25.0, boundary_type='vacuum') + cell = openmc.Cell(fill=mat, region=-sph) + model.geometry = openmc.Geometry([cell]) + + model.settings.run_mode = 'fixed source' + model.settings.batches = 2 + model.settings.particles = 50 + + model.tallies = openmc.Tallies([tally]) + + model.run() cylinder_mesh = openmc.CylindricalMesh() cylinder_mesh.r_grid = np.linspace(1, 2, num=30) @@ -59,19 +76,13 @@ rectilinear_mesh.x_grid = np.linspace(0, 1) rectilinear_mesh.y_grid = np.linspace(0, 1) rectilinear_mesh.z_grid = np.linspace(0, 1) - -@pytest.mark.parametrize("mesh", [cylinder_mesh, regular_mesh, rectilinear_mesh]) -def test_voxels_to_vtk(mesh): - vtk_grid = openmc.voxels_to_vtk(mesh, mean=None, std_dev=None) - assert isinstance(vtk_grid, vtk.vtkStructuredGrid) - - @pytest.mark.parametrize("mesh", [cylinder_mesh, regular_mesh, rectilinear_mesh]) def test_write_to_vtk(mesh, tmpdir): # build tally = openmc.Tally() tally.filters = [openmc.MeshFilter(mesh)] filename = tmpdir / "out.vtk" + run_dummy_sim(tally) # run tally.write_to_vtk(filename) # test @@ -97,6 +108,6 @@ def test_voxel_to_vtk_raises_error_with_wrong_mesh(): spherical_mesh.theta_grid = np.linspace(1, 2) tally.filters = [openmc.MeshFilter(spherical_mesh)] # test - expected_err_msg = "voxels_to_vtk only works with openmc.RegularMesh, openmc.RectilinearMesh, openmc.CylindricalMesh" - with pytest.raises(ValueError, match=expected_err_msg): + expected_err_msg = "vtk_grid not implemented for SphericalMesh" + with pytest.raises(NotImplementedError, match=expected_err_msg): tally.write_to_vtk("out.vtk") \ No newline at end of file From 2a78c06cf512e579eaeef007a63a2c90da9cb4ed Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 11:21:45 +0200 Subject: [PATCH 073/119] added docstrings --- openmc/mesh.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/openmc/mesh.py b/openmc/mesh.py index dbdfb10b0..f6e395328 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -623,6 +623,15 @@ class RegularMesh(StructuredMesh): return root_cell, cells def vtk_grid(self, filename=None): + """Creates a VTK object of the mesh + + Args: + filename (str, optional): Name of the vtk file to write = + (must end with .vtk). Defaults to None. + + Returns: + vtk.vtkStructuredGrid: the VTK object + """ import vtk from vtk.util import numpy_support as nps @@ -860,6 +869,15 @@ class RectilinearMesh(StructuredMesh): return element def vtk_grid(self, filename=None): + """Creates a VTK object of the mesh + + Args: + filename (str, optional): Name of the vtk file to write = + (must end with .vtk). Defaults to None. + + Returns: + vtk.vtkStructuredGrid: the VTK object + """ import vtk from vtk.util import numpy_support as nps @@ -1078,6 +1096,15 @@ class CylindricalMesh(StructuredMesh): return np.multiply.outer(np.outer(V_r, V_p), V_z) def vtk_grid(self, filename=None): + """Creates a VTK object of the mesh + + Args: + filename (str, optional): Name of the vtk file to write = + (must end with .vtk). Defaults to None. + + Returns: + vtk.vtkStructuredGrid: the VTK object + """ import vtk from vtk.util import numpy_support as nps @@ -1301,6 +1328,16 @@ class SphericalMesh(StructuredMesh): return np.multiply.outer(np.outer(V_r, V_t), V_p) def vtk_grid(self, filename=None): + """Creates a VTK object of the mesh + + Args: + filename (str, optional): Name of the vtk file to write = + (must end with .vtk). Defaults to None. + + Returns: + vtk.vtkStructuredGrid: the VTK object + """ + # FIXME raise NotImplementedError("vtk_grid not implemented for SphericalMesh") From 913bc99564b97490d90152aa68ed9a65838bdc3e Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 11:33:17 +0200 Subject: [PATCH 074/119] minor refactore --- openmc/mesh.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/openmc/mesh.py b/openmc/mesh.py index f6e395328..d89a980ac 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -1108,15 +1108,12 @@ class CylindricalMesh(StructuredMesh): import vtk from vtk.util import numpy_support as nps - r_vals = self.r_grid - phi_vals = self.phi_grid - z_vals = self.z_grid vtk_grid = vtk.vtkStructuredGrid() - vtk_grid.SetDimensions(len(r_vals), len(phi_vals), len(z_vals)) + vtk_grid.SetDimensions(len(self.r_grid), len(self.phi_grid), len(self.z_grid)) # create points - pts_cylindrical = np.array([[r, phi, z] for z in z_vals for phi in phi_vals for r in r_vals]) + pts_cylindrical = np.array([[r, phi, z] for z in self.z_grid for phi in self.phi_grid for r in self.r_grid]) pts_cartesian = np.copy(pts_cylindrical) r, phi, z = pts_cylindrical[:, 0], pts_cylindrical[:, 1], pts_cylindrical[:, 2] pts_cartesian[:, 0] = r * np.cos(phi) From aeb66509098b597a5cd53fca88d5e21096c691a0 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 11:54:52 +0200 Subject: [PATCH 075/119] implemented spherical grid --- openmc/mesh.py | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/openmc/mesh.py b/openmc/mesh.py index d89a980ac..260ed5f43 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -1334,8 +1334,33 @@ class SphericalMesh(StructuredMesh): Returns: vtk.vtkStructuredGrid: the VTK object """ - # FIXME - raise NotImplementedError("vtk_grid not implemented for SphericalMesh") + import vtk + from vtk.util import numpy_support as nps + + vtk_grid = vtk.vtkStructuredGrid() + + vtk_grid.SetDimensions(len(self.r_grid), len(self.theta_grid), len(self.phi_grid)) + + # create points + pts_cylindrical = np.array([[r, theta, phi] for phi in self.phi_grid for theta in self.theta_grid for r in self.r_grid]) + pts_cartesian = np.copy(pts_cylindrical) + r, theta, phi = pts_cylindrical[:, 0], pts_cylindrical[:, 1], pts_cylindrical[:, 2] + pts_cartesian[:, 0] = r * np.sin(phi) * np.cos(theta) + pts_cartesian[:, 1] = r * np.sin(phi) * np.sin(theta) + pts_cartesian[:, 2] = r * np.cos(phi) + + vtkPts = vtk.vtkPoints() + vtkPts.SetData(nps.numpy_to_vtk(pts_cartesian, deep=True)) + vtk_grid.SetPoints(vtkPts) + + if filename: + # write the .vtk file + writer = vtk.vtkStructuredGridWriter() + writer.SetFileName(filename) + writer.SetInputData(vtk_grid) + writer.Write() + + return vtk_grid class UnstructuredMesh(MeshBase): From 7de718a85c1ceaa0a6c485184829357d0f5c6372 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 11:56:32 +0200 Subject: [PATCH 076/119] adapted tests --- tests/unit_tests/test_tallies.py | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/tests/unit_tests/test_tallies.py b/tests/unit_tests/test_tallies.py index e49596f6d..e3f9a486d 100644 --- a/tests/unit_tests/test_tallies.py +++ b/tests/unit_tests/test_tallies.py @@ -76,7 +76,12 @@ rectilinear_mesh.x_grid = np.linspace(0, 1) rectilinear_mesh.y_grid = np.linspace(0, 1) rectilinear_mesh.z_grid = np.linspace(0, 1) -@pytest.mark.parametrize("mesh", [cylinder_mesh, regular_mesh, rectilinear_mesh]) +spherical_mesh = openmc.SphericalMesh() +spherical_mesh.r_grid = np.linspace(1, 2) +spherical_mesh.phi_grid = np.linspace(1, 2) +spherical_mesh.theta_grid = np.linspace(1, 2) + +@pytest.mark.parametrize("mesh", [cylinder_mesh, regular_mesh, rectilinear_mesh, spherical_mesh]) def test_write_to_vtk(mesh, tmpdir): # build tally = openmc.Tally() @@ -97,17 +102,3 @@ def test_write_to_vtk_raises_error_when_no_meshfilter(): expected_err_msg = "write_to_vtk requires a MeshFilter in the tally filters" with pytest.raises(ValueError, match=expected_err_msg): tally.write_to_vtk("out.vtk") - - -def test_voxel_to_vtk_raises_error_with_wrong_mesh(): - # build - tally = openmc.Tally() - spherical_mesh = openmc.SphericalMesh() - spherical_mesh.r_grid = np.linspace(1, 2) - spherical_mesh.phi_grid = np.linspace(1, 2) - spherical_mesh.theta_grid = np.linspace(1, 2) - tally.filters = [openmc.MeshFilter(spherical_mesh)] - # test - expected_err_msg = "vtk_grid not implemented for SphericalMesh" - with pytest.raises(NotImplementedError, match=expected_err_msg): - tally.write_to_vtk("out.vtk") \ No newline at end of file From 0f23bf2109505f1ebb2de692552f096b25a5e93b Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 12:21:59 +0200 Subject: [PATCH 077/119] write_data_to_vtk SphericalMesh --- openmc/mesh.py | 41 ++++++++++++++++++++++++++++++++++------- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/openmc/mesh.py b/openmc/mesh.py index 260ed5f43..c780827ea 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -1324,7 +1324,7 @@ class SphericalMesh(StructuredMesh): return np.multiply.outer(np.outer(V_r, V_t), V_p) - def vtk_grid(self, filename=None): + def write_data_to_vtk(self, filename, datasets, volume_normalization=True): """Creates a VTK object of the mesh Args: @@ -1337,6 +1337,19 @@ class SphericalMesh(StructuredMesh): import vtk from vtk.util import numpy_support as nps + if self.volumes is None and volume_normalization: + raise RuntimeError("No volume data is present on this " + "unstructured mesh. Please load the " + " mesh information from a statepoint file.") + + # check that the data sets are appropriately sized + for label, dataset in datasets.items(): + if isinstance(dataset, np.ndarray): + assert dataset.size == self.dimension[0] * self.dimension[1]* self.dimension[2] + else: + assert len(dataset) == self.dimension[0] * self.dimension[1]* self.dimension[2] + cv.check_type('label', label, str) + vtk_grid = vtk.vtkStructuredGrid() vtk_grid.SetDimensions(len(self.r_grid), len(self.theta_grid), len(self.phi_grid)) @@ -1353,12 +1366,26 @@ class SphericalMesh(StructuredMesh): vtkPts.SetData(nps.numpy_to_vtk(pts_cartesian, deep=True)) vtk_grid.SetPoints(vtkPts) - if filename: - # write the .vtk file - writer = vtk.vtkStructuredGridWriter() - writer.SetFileName(filename) - writer.SetInputData(vtk_grid) - writer.Write() + # create VTK arrays for each of + # the data sets + for label, dataset in datasets.items(): + dataset = np.asarray(dataset).flatten() + + if volume_normalization: + dataset /= self.volumes.flatten() + + dataset_array = vtk.vtkDoubleArray() + dataset_array.SetName(label) + dataset_array.SetArray(nps.numpy_to_vtk(dataset), + dataset.size, + True) + vtk_grid.GetCellData().AddArray(dataset_array) + + # write the .vtk file + writer = vtk.vtkStructuredGridWriter() + writer.SetFileName(filename) + writer.SetInputData(vtk_grid) + writer.Write() return vtk_grid From 15cc2a0804d3fa146bf6e337f4987ae634490513 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 12:23:55 +0200 Subject: [PATCH 078/119] fixed variable name --- openmc/mesh.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openmc/mesh.py b/openmc/mesh.py index c780827ea..3dbc170d6 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -1355,9 +1355,9 @@ class SphericalMesh(StructuredMesh): vtk_grid.SetDimensions(len(self.r_grid), len(self.theta_grid), len(self.phi_grid)) # create points - pts_cylindrical = np.array([[r, theta, phi] for phi in self.phi_grid for theta in self.theta_grid for r in self.r_grid]) - pts_cartesian = np.copy(pts_cylindrical) - r, theta, phi = pts_cylindrical[:, 0], pts_cylindrical[:, 1], pts_cylindrical[:, 2] + pts_spherical = np.array([[r, theta, phi] for phi in self.phi_grid for theta in self.theta_grid for r in self.r_grid]) + pts_cartesian = np.copy(pts_spherical) + r, theta, phi = pts_spherical[:, 0], pts_spherical[:, 1], pts_spherical[:, 2] pts_cartesian[:, 0] = r * np.sin(phi) * np.cos(theta) pts_cartesian[:, 1] = r * np.sin(phi) * np.sin(theta) pts_cartesian[:, 2] = r * np.cos(phi) From 3b1d1756e4716e5e70f58a3142dc7efaed2d7913 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 12:26:29 +0200 Subject: [PATCH 079/119] write_data_to_vtk CylindricalMesh --- openmc/mesh.py | 41 ++++++++++++++++++++++++++++++++++------- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/openmc/mesh.py b/openmc/mesh.py index 3dbc170d6..029d714f0 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -1095,7 +1095,7 @@ class CylindricalMesh(StructuredMesh): return np.multiply.outer(np.outer(V_r, V_p), V_z) - def vtk_grid(self, filename=None): + def write_data_to_vtk(self, filename, datasets, volume_normalization=True): """Creates a VTK object of the mesh Args: @@ -1108,6 +1108,19 @@ class CylindricalMesh(StructuredMesh): import vtk from vtk.util import numpy_support as nps + if self.volumes is None and volume_normalization: + raise RuntimeError("No volume data is present on this " + "unstructured mesh. Please load the " + " mesh information from a statepoint file.") + + # check that the data sets are appropriately sized + for label, dataset in datasets.items(): + if isinstance(dataset, np.ndarray): + assert dataset.size == self.dimension[0] * self.dimension[1]* self.dimension[2] + else: + assert len(dataset) == self.dimension[0] * self.dimension[1]* self.dimension[2] + cv.check_type('label', label, str) + vtk_grid = vtk.vtkStructuredGrid() vtk_grid.SetDimensions(len(self.r_grid), len(self.phi_grid), len(self.z_grid)) @@ -1124,12 +1137,26 @@ class CylindricalMesh(StructuredMesh): vtkPts.SetData(nps.numpy_to_vtk(pts_cartesian, deep=True)) vtk_grid.SetPoints(vtkPts) - if filename: - # write the .vtk file - writer = vtk.vtkStructuredGridWriter() - writer.SetFileName(filename) - writer.SetInputData(vtk_grid) - writer.Write() + # create VTK arrays for each of + # the data sets + for label, dataset in datasets.items(): + dataset = np.asarray(dataset).flatten() + + if volume_normalization: + dataset /= self.volumes.flatten() + + dataset_array = vtk.vtkDoubleArray() + dataset_array.SetName(label) + dataset_array.SetArray(nps.numpy_to_vtk(dataset), + dataset.size, + True) + vtk_grid.GetCellData().AddArray(dataset_array) + + + writer = vtk.vtkStructuredGridWriter() + writer.SetFileName(filename) + writer.SetInputData(vtk_grid) + writer.Write() return vtk_grid From 722b572dc314ba3dc5802da57a43e0d124323556 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 12:31:35 +0200 Subject: [PATCH 080/119] write_data_to_vtk RegularMesh --- openmc/mesh.py | 41 ++++++++++++++++++++++++++++++++++------- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/openmc/mesh.py b/openmc/mesh.py index 029d714f0..179e9a171 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -622,7 +622,7 @@ class RegularMesh(StructuredMesh): return root_cell, cells - def vtk_grid(self, filename=None): + def write_data_to_vtk(self, filename, datasets, volume_normalization=True): """Creates a VTK object of the mesh Args: @@ -635,6 +635,19 @@ class RegularMesh(StructuredMesh): import vtk from vtk.util import numpy_support as nps + if self.volumes is None and volume_normalization: + raise RuntimeError("No volume data is present on this " + "unstructured mesh. Please load the " + " mesh information from a statepoint file.") + + # check that the data sets are appropriately sized + for label, dataset in datasets.items(): + if isinstance(dataset, np.ndarray): + assert dataset.size == self.dimension[0] * self.dimension[1] * self.dimension[2] + else: + assert len(dataset) == self.dimension[0] * self.dimension[1] * self.dimension[2] + cv.check_type('label', label, str) + x_vals = np.linspace( self.lower_left[0], self.upper_right[0], @@ -661,12 +674,26 @@ class RegularMesh(StructuredMesh): vtkPts.SetData(nps.numpy_to_vtk(pts_cartesian, deep=True)) vtk_grid.SetPoints(vtkPts) - if filename: - # write the .vtk file - writer = vtk.vtkStructuredGridWriter() - writer.SetFileName(filename) - writer.SetInputData(vtk_grid) - writer.Write() + # create VTK arrays for each of + # the data sets + for label, dataset in datasets.items(): + dataset = np.asarray(dataset).flatten() + + if volume_normalization: + dataset /= self.volumes.flatten() + + dataset_array = vtk.vtkDoubleArray() + dataset_array.SetName(label) + dataset_array.SetArray(nps.numpy_to_vtk(dataset), + dataset.size, + True) + vtk_grid.GetCellData().AddArray(dataset_array) + + # write the .vtk file + writer = vtk.vtkStructuredGridWriter() + writer.SetFileName(filename) + writer.SetInputData(vtk_grid) + writer.Write() return vtk_grid From 5ecac76b6960f635f375fd48f3cb567733073d3f Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 12:34:05 +0200 Subject: [PATCH 081/119] write_data_to_vtk rectilinear mesh --- openmc/mesh.py | 41 ++++++++++++++++++++++++++++++++++------- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/openmc/mesh.py b/openmc/mesh.py index 179e9a171..db2e1593c 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -895,7 +895,7 @@ class RectilinearMesh(StructuredMesh): return element - def vtk_grid(self, filename=None): + def write_data_to_vtk(self, filename, datasets, volume_normalization=True): """Creates a VTK object of the mesh Args: @@ -908,6 +908,19 @@ class RectilinearMesh(StructuredMesh): import vtk from vtk.util import numpy_support as nps + if self.volumes is None and volume_normalization: + raise RuntimeError("No volume data is present on this " + "unstructured mesh. Please load the " + " mesh information from a statepoint file.") + + # check that the data sets are appropriately sized + for label, dataset in datasets.items(): + if isinstance(dataset, np.ndarray): + assert dataset.size == self.dimension[0] * self.dimension[1]* self.dimension[2] + else: + assert len(dataset) == self.dimension[0] * self.dimension[1]* self.dimension[2] + cv.check_type('label', label, str) + x_vals = self.x_grid y_vals = self.y_grid z_vals = self.z_grid @@ -922,12 +935,26 @@ class RectilinearMesh(StructuredMesh): vtkPts.SetData(nps.numpy_to_vtk(pts_cartesian, deep=True)) vtk_grid.SetPoints(vtkPts) - if filename: - # write the .vtk file - writer = vtk.vtkStructuredGridWriter() - writer.SetFileName(filename) - writer.SetInputData(vtk_grid) - writer.Write() + # create VTK arrays for each of + # the data sets + for label, dataset in datasets.items(): + dataset = np.asarray(dataset).flatten() + + if volume_normalization: + dataset /= self.volumes.flatten() + + dataset_array = vtk.vtkDoubleArray() + dataset_array.SetName(label) + dataset_array.SetArray(nps.numpy_to_vtk(dataset), + dataset.size, + True) + vtk_grid.GetCellData().AddArray(dataset_array) + + # write the .vtk file + writer = vtk.vtkStructuredGridWriter() + writer.SetFileName(filename) + writer.SetInputData(vtk_grid) + writer.Write() return vtk_grid From 3233ffc759708b6df7a12c8234404897fa329e51 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 12:34:58 +0200 Subject: [PATCH 082/119] removed Tally.write_to_vtk --- openmc/tallies.py | 48 ----------------------------------------------- 1 file changed, 48 deletions(-) diff --git a/openmc/tallies.py b/openmc/tallies.py index e67365df6..d0355f14e 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -3013,54 +3013,6 @@ class Tally(IDManagerMixin): new_tally.sparse = self.sparse return new_tally - def write_to_vtk(self, filename): - """Writes the tally to a vtk file - - Args: - filename (str): the filename (must end with .vtk) - - Raises: - ValueError: if no MeshFilter was found - """ - try: - import vtk - except ModuleNotFoundError: - msg = 'Python package vtk was not found, please install vtk to use Tally.write_to_vtk.' - raise ModuleNotFoundError(msg) - except ImportError as err: - raise err - - # check that tally has a MeshFilter - mesh = None - for f in self.filters: - if isinstance(f, openmc.MeshFilter): - mesh = f.mesh - break - - if not mesh: - raise ValueError( - "write_to_vtk requires a MeshFilter in the tally filters" - ) - - vtk_grid = mesh.vtk_grid() - - # add mean and std dev data - mean_array = vtk.vtkDoubleArray() - mean_array.SetName("mean") - mean_array.SetArray(self.mean, self.mean.size, True) - vtk_grid.GetCellData().AddArray(mean_array) - - std_dev_array = vtk.vtkDoubleArray() - std_dev_array.SetName("std_dev") - std_dev_array.SetArray(self.std_dev, self.std_dev.size, True) - vtk_grid.GetCellData().AddArray(std_dev_array) - - # write the .vtk file - writer = vtk.vtkStructuredGridWriter() - writer.SetFileName(filename) - writer.SetInputData(vtk_grid) - writer.Write() - class Tallies(cv.CheckedList): """Collection of Tallies used for an OpenMC simulation. From c58465214b96f7245979f792f4bf98201551e560 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 13:01:47 +0200 Subject: [PATCH 083/119] removed tally tests --- tests/unit_tests/test_tallies.py | 63 -------------------------------- 1 file changed, 63 deletions(-) diff --git a/tests/unit_tests/test_tallies.py b/tests/unit_tests/test_tallies.py index e3f9a486d..bfff741a9 100644 --- a/tests/unit_tests/test_tallies.py +++ b/tests/unit_tests/test_tallies.py @@ -1,7 +1,4 @@ import numpy as np -import pytest -import vtk -from os.path import exists import openmc @@ -42,63 +39,3 @@ def test_xml_roundtrip(run_in_tmpdir): assert new_tally.triggers[0].trigger_type == tally.triggers[0].trigger_type assert new_tally.triggers[0].threshold == tally.triggers[0].threshold assert new_tally.triggers[0].scores == tally.triggers[0].scores - -def run_dummy_sim(tally): - mat = openmc.Material() - mat.add_nuclide('Zr90', 1.0) - mat.set_density('g/cm3', 1.0) - - model = openmc.Model() - sph = openmc.Sphere(r=25.0, boundary_type='vacuum') - cell = openmc.Cell(fill=mat, region=-sph) - model.geometry = openmc.Geometry([cell]) - - model.settings.run_mode = 'fixed source' - model.settings.batches = 2 - model.settings.particles = 50 - - model.tallies = openmc.Tallies([tally]) - - model.run() - -cylinder_mesh = openmc.CylindricalMesh() -cylinder_mesh.r_grid = np.linspace(1, 2, num=30) -cylinder_mesh.phi_grid = np.linspace(0, np.pi / 2, num=50) -cylinder_mesh.z_grid = np.linspace(0, 1, num=30) - -regular_mesh = openmc.RegularMesh() -regular_mesh.lower_left = [0, 0, 0] -regular_mesh.upper_right = [1, 1, 1] -regular_mesh.dimension = [10, 5, 6] - -rectilinear_mesh = openmc.RectilinearMesh() -rectilinear_mesh.x_grid = np.linspace(0, 1) -rectilinear_mesh.y_grid = np.linspace(0, 1) -rectilinear_mesh.z_grid = np.linspace(0, 1) - -spherical_mesh = openmc.SphericalMesh() -spherical_mesh.r_grid = np.linspace(1, 2) -spherical_mesh.phi_grid = np.linspace(1, 2) -spherical_mesh.theta_grid = np.linspace(1, 2) - -@pytest.mark.parametrize("mesh", [cylinder_mesh, regular_mesh, rectilinear_mesh, spherical_mesh]) -def test_write_to_vtk(mesh, tmpdir): - # build - tally = openmc.Tally() - tally.filters = [openmc.MeshFilter(mesh)] - filename = tmpdir / "out.vtk" - run_dummy_sim(tally) - # run - tally.write_to_vtk(filename) - # test - assert exists(filename) - - -def test_write_to_vtk_raises_error_when_no_meshfilter(): - # build - tally = openmc.Tally() - - # test - expected_err_msg = "write_to_vtk requires a MeshFilter in the tally filters" - with pytest.raises(ValueError, match=expected_err_msg): - tally.write_to_vtk("out.vtk") From 15b98ea541fd27f6e02b5939bd482155cf44b56b Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 13:02:12 +0200 Subject: [PATCH 084/119] added a test to meshes --- tests/unit_tests/test_mesh_to_vtk.py | 35 ++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 tests/unit_tests/test_mesh_to_vtk.py diff --git a/tests/unit_tests/test_mesh_to_vtk.py b/tests/unit_tests/test_mesh_to_vtk.py new file mode 100644 index 000000000..b5c8ca60a --- /dev/null +++ b/tests/unit_tests/test_mesh_to_vtk.py @@ -0,0 +1,35 @@ +import numpy as np +from os.path import exists +import pytest + +import openmc + + +regular_mesh = openmc.RegularMesh() +regular_mesh.lower_left = (0, 0, 0) +regular_mesh.upper_right = (1, 1, 1) +regular_mesh.dimension = [30, 20, 10] + +rectilinear_mesh = openmc.RectilinearMesh() +rectilinear_mesh.x_grid = np.linspace(1, 2, num=30) +rectilinear_mesh.y_grid = np.linspace(1, 2, num=30) +rectilinear_mesh.z_grid = np.linspace(1, 2, num=30) + +cylinder_mesh = openmc.CylindricalMesh() +cylinder_mesh.r_grid = np.linspace(1, 2, num=30) +cylinder_mesh.phi_grid = np.linspace(0, np.pi, num=50) +cylinder_mesh.z_grid = np.linspace(0, 1, num=30) + +spherical_mesh = openmc.SphericalMesh() +spherical_mesh.r_grid = np.linspace(1, 2, num=30) +spherical_mesh.phi_grid = np.linspace(0, np.pi, num=50) +spherical_mesh.theta_grid = np.linspace(0, np.pi / 2, num=30) + +@pytest.mark.parametrize("mesh", [cylinder_mesh, regular_mesh, rectilinear_mesh, spherical_mesh]) +def test_write_data_to_vtk(mesh, tmpdir): + filename = tmpdir / "out.vtk" + + data = np.random.random(mesh.dimension[0]*mesh.dimension[1]*mesh.dimension[2]) + + mesh.write_data_to_vtk(filename=filename, datasets={"label": data}) + assert exists(filename) \ No newline at end of file From 5174145c1ec9daacac8cfcd33e4b9212d9889fa1 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 13:21:36 +0200 Subject: [PATCH 085/119] added checks to test --- tests/unit_tests/test_mesh_to_vtk.py | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/tests/unit_tests/test_mesh_to_vtk.py b/tests/unit_tests/test_mesh_to_vtk.py index b5c8ca60a..e487b3668 100644 --- a/tests/unit_tests/test_mesh_to_vtk.py +++ b/tests/unit_tests/test_mesh_to_vtk.py @@ -1,6 +1,8 @@ import numpy as np from os.path import exists import pytest +import vtk +from vtk.util import numpy_support as nps import openmc @@ -27,9 +29,30 @@ spherical_mesh.theta_grid = np.linspace(0, np.pi / 2, num=30) @pytest.mark.parametrize("mesh", [cylinder_mesh, regular_mesh, rectilinear_mesh, spherical_mesh]) def test_write_data_to_vtk(mesh, tmpdir): + # BUILD filename = tmpdir / "out.vtk" data = np.random.random(mesh.dimension[0]*mesh.dimension[1]*mesh.dimension[2]) - mesh.write_data_to_vtk(filename=filename, datasets={"label": data}) - assert exists(filename) \ No newline at end of file + # RUN + mesh.write_data_to_vtk(filename=filename, datasets={"label1": data, "label2": data}) + + # TEST + assert exists(filename) + + # read file + reader = vtk.vtkStructuredGridReader() + reader.SetFileName(filename) + reader.Update() + + # check name of datasets + vtk_grid = reader.GetOutput() + array1 = vtk_grid.GetCellData().GetArray(0) + array2 = vtk_grid.GetCellData().GetArray(1) + + assert array1.GetName() == "label1" + assert array2.GetName() == "label2" + + # check size of datasets + assert nps.vtk_to_numpy(array1).size == data.size + assert nps.vtk_to_numpy(array2).size == data.size \ No newline at end of file From 5603e328b8650e874b2cf0235bba6fe792850129 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 13:24:44 +0200 Subject: [PATCH 086/119] docstrings --- openmc/mesh.py | 48 ++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 40 insertions(+), 8 deletions(-) diff --git a/openmc/mesh.py b/openmc/mesh.py index db2e1593c..1372c5196 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -626,8 +626,16 @@ class RegularMesh(StructuredMesh): """Creates a VTK object of the mesh Args: - filename (str, optional): Name of the vtk file to write = - (must end with .vtk). Defaults to None. + filename (str): Name of the VTK file to write. + datasets (dict): Dictionary whose keys are the data labels + and values are the data sets. + volume_normalization (bool, optional): Whether or not to + normalize the data by the volume of the mesh elements. + Defaults to True. + + Raises: + RuntimeError: when no volume data is found and volume_normalisation + is required Returns: vtk.vtkStructuredGrid: the VTK object @@ -899,8 +907,16 @@ class RectilinearMesh(StructuredMesh): """Creates a VTK object of the mesh Args: - filename (str, optional): Name of the vtk file to write = - (must end with .vtk). Defaults to None. + filename (str): Name of the VTK file to write. + datasets (dict): Dictionary whose keys are the data labels + and values are the data sets. + volume_normalization (bool, optional): Whether or not to + normalize the data by the volume of the mesh elements. + Defaults to True. + + Raises: + RuntimeError: when no volume data is found and volume_normalisation + is required Returns: vtk.vtkStructuredGrid: the VTK object @@ -1153,8 +1169,16 @@ class CylindricalMesh(StructuredMesh): """Creates a VTK object of the mesh Args: - filename (str, optional): Name of the vtk file to write = - (must end with .vtk). Defaults to None. + filename (str): Name of the VTK file to write. + datasets (dict): Dictionary whose keys are the data labels + and values are the data sets. + volume_normalization (bool, optional): Whether or not to + normalize the data by the volume of the mesh elements. + Defaults to True. + + Raises: + RuntimeError: when no volume data is found and volume_normalisation + is required Returns: vtk.vtkStructuredGrid: the VTK object @@ -1409,8 +1433,16 @@ class SphericalMesh(StructuredMesh): """Creates a VTK object of the mesh Args: - filename (str, optional): Name of the vtk file to write = - (must end with .vtk). Defaults to None. + filename (str): Name of the VTK file to write. + datasets (dict): Dictionary whose keys are the data labels + and values are the data sets. + volume_normalization (bool, optional): Whether or not to + normalize the data by the volume of the mesh elements. + Defaults to True. + + Raises: + RuntimeError: when no volume data is found and volume_normalisation + is required Returns: vtk.vtkStructuredGrid: the VTK object From c77eb6097d6584820256ad497520273669299f9a Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 14:18:31 +0200 Subject: [PATCH 087/119] removed check volume for structured meshes --- openmc/mesh.py | 36 ------------------------------------ 1 file changed, 36 deletions(-) diff --git a/openmc/mesh.py b/openmc/mesh.py index 1372c5196..a63834941 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -633,21 +633,12 @@ class RegularMesh(StructuredMesh): normalize the data by the volume of the mesh elements. Defaults to True. - Raises: - RuntimeError: when no volume data is found and volume_normalisation - is required - Returns: vtk.vtkStructuredGrid: the VTK object """ import vtk from vtk.util import numpy_support as nps - if self.volumes is None and volume_normalization: - raise RuntimeError("No volume data is present on this " - "unstructured mesh. Please load the " - " mesh information from a statepoint file.") - # check that the data sets are appropriately sized for label, dataset in datasets.items(): if isinstance(dataset, np.ndarray): @@ -914,21 +905,12 @@ class RectilinearMesh(StructuredMesh): normalize the data by the volume of the mesh elements. Defaults to True. - Raises: - RuntimeError: when no volume data is found and volume_normalisation - is required - Returns: vtk.vtkStructuredGrid: the VTK object """ import vtk from vtk.util import numpy_support as nps - if self.volumes is None and volume_normalization: - raise RuntimeError("No volume data is present on this " - "unstructured mesh. Please load the " - " mesh information from a statepoint file.") - # check that the data sets are appropriately sized for label, dataset in datasets.items(): if isinstance(dataset, np.ndarray): @@ -1176,21 +1158,12 @@ class CylindricalMesh(StructuredMesh): normalize the data by the volume of the mesh elements. Defaults to True. - Raises: - RuntimeError: when no volume data is found and volume_normalisation - is required - Returns: vtk.vtkStructuredGrid: the VTK object """ import vtk from vtk.util import numpy_support as nps - if self.volumes is None and volume_normalization: - raise RuntimeError("No volume data is present on this " - "unstructured mesh. Please load the " - " mesh information from a statepoint file.") - # check that the data sets are appropriately sized for label, dataset in datasets.items(): if isinstance(dataset, np.ndarray): @@ -1440,21 +1413,12 @@ class SphericalMesh(StructuredMesh): normalize the data by the volume of the mesh elements. Defaults to True. - Raises: - RuntimeError: when no volume data is found and volume_normalisation - is required - Returns: vtk.vtkStructuredGrid: the VTK object """ import vtk from vtk.util import numpy_support as nps - if self.volumes is None and volume_normalization: - raise RuntimeError("No volume data is present on this " - "unstructured mesh. Please load the " - " mesh information from a statepoint file.") - # check that the data sets are appropriately sized for label, dataset in datasets.items(): if isinstance(dataset, np.ndarray): From 1a7c0791bf92e46475343323d7ac0b939bcb9a5a Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 14:19:12 +0200 Subject: [PATCH 088/119] z is unchanged --- openmc/mesh.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/openmc/mesh.py b/openmc/mesh.py index a63834941..1ccb6e86e 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -1179,10 +1179,9 @@ class CylindricalMesh(StructuredMesh): # create points pts_cylindrical = np.array([[r, phi, z] for z in self.z_grid for phi in self.phi_grid for r in self.r_grid]) pts_cartesian = np.copy(pts_cylindrical) - r, phi, z = pts_cylindrical[:, 0], pts_cylindrical[:, 1], pts_cylindrical[:, 2] + r, phi = pts_cylindrical[:, 0], pts_cylindrical[:, 1] pts_cartesian[:, 0] = r * np.cos(phi) pts_cartesian[:, 1] = r * np.sin(phi) - pts_cartesian[:, 2] = z vtkPts = vtk.vtkPoints() vtkPts.SetData(nps.numpy_to_vtk(pts_cartesian, deep=True)) From 9867a4340abbbd2fa093acb1fd04ed1745ab6513 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Delaporte-Mathurin?= <40028739+RemDelaporteMathurin@users.noreply.github.com> Date: Wed, 29 Jun 2022 14:19:56 +0200 Subject: [PATCH 089/119] [skip ci] use .num_mesh_cells Co-authored-by: Paul Romano --- tests/unit_tests/test_mesh_to_vtk.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit_tests/test_mesh_to_vtk.py b/tests/unit_tests/test_mesh_to_vtk.py index e487b3668..b57235edd 100644 --- a/tests/unit_tests/test_mesh_to_vtk.py +++ b/tests/unit_tests/test_mesh_to_vtk.py @@ -32,7 +32,7 @@ def test_write_data_to_vtk(mesh, tmpdir): # BUILD filename = tmpdir / "out.vtk" - data = np.random.random(mesh.dimension[0]*mesh.dimension[1]*mesh.dimension[2]) + data = np.random.random(mesh.num_mesh_cells) # RUN mesh.write_data_to_vtk(filename=filename, datasets={"label1": data, "label2": data}) From 7e074fe354fc60887c8c4d6540c28e1a6a338ebc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Delaporte-Mathurin?= <40028739+RemDelaporteMathurin@users.noreply.github.com> Date: Wed, 29 Jun 2022 14:20:17 +0200 Subject: [PATCH 090/119] [skip ci] str(filename) Co-authored-by: Paul Romano --- openmc/mesh.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/mesh.py b/openmc/mesh.py index 1372c5196..e024710b4 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -699,7 +699,7 @@ class RegularMesh(StructuredMesh): # write the .vtk file writer = vtk.vtkStructuredGridWriter() - writer.SetFileName(filename) + writer.SetFileName(str(filename)) writer.SetInputData(vtk_grid) writer.Write() From 1155ffb739d8a80e5520c1013596864874a57cf5 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 14:21:15 +0200 Subject: [PATCH 091/119] added pathlib import --- tests/unit_tests/test_mesh_to_vtk.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/unit_tests/test_mesh_to_vtk.py b/tests/unit_tests/test_mesh_to_vtk.py index e487b3668..cfb0407ca 100644 --- a/tests/unit_tests/test_mesh_to_vtk.py +++ b/tests/unit_tests/test_mesh_to_vtk.py @@ -1,5 +1,6 @@ import numpy as np from os.path import exists +from pathlib import Path import pytest import vtk from vtk.util import numpy_support as nps From aeeb078344023ebb47ec7238b763c89a541a05fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Delaporte-Mathurin?= <40028739+RemDelaporteMathurin@users.noreply.github.com> Date: Wed, 29 Jun 2022 14:22:01 +0200 Subject: [PATCH 092/119] [skip ci] pathlib instead of os Co-authored-by: Paul Romano --- tests/unit_tests/test_mesh_to_vtk.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit_tests/test_mesh_to_vtk.py b/tests/unit_tests/test_mesh_to_vtk.py index b57235edd..3b7ccf9fa 100644 --- a/tests/unit_tests/test_mesh_to_vtk.py +++ b/tests/unit_tests/test_mesh_to_vtk.py @@ -30,7 +30,7 @@ spherical_mesh.theta_grid = np.linspace(0, np.pi / 2, num=30) @pytest.mark.parametrize("mesh", [cylinder_mesh, regular_mesh, rectilinear_mesh, spherical_mesh]) def test_write_data_to_vtk(mesh, tmpdir): # BUILD - filename = tmpdir / "out.vtk" + filename = Path(tmpdir) / "out.vtk" data = np.random.random(mesh.num_mesh_cells) From f99e93b5839f4166972fa8e83d93de6eccb5b619 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Delaporte-Mathurin?= <40028739+RemDelaporteMathurin@users.noreply.github.com> Date: Wed, 29 Jun 2022 14:22:26 +0200 Subject: [PATCH 093/119] [skip ci] is_file() instead of exists() Co-authored-by: Paul Romano --- tests/unit_tests/test_mesh_to_vtk.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit_tests/test_mesh_to_vtk.py b/tests/unit_tests/test_mesh_to_vtk.py index 3b7ccf9fa..31fbd4c88 100644 --- a/tests/unit_tests/test_mesh_to_vtk.py +++ b/tests/unit_tests/test_mesh_to_vtk.py @@ -38,7 +38,7 @@ def test_write_data_to_vtk(mesh, tmpdir): mesh.write_data_to_vtk(filename=filename, datasets={"label1": data, "label2": data}) # TEST - assert exists(filename) + assert filename.is_file() # read file reader = vtk.vtkStructuredGridReader() From 1266e433c8bd3f525e6b1ea9bafef174238be09c Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 14:23:06 +0200 Subject: [PATCH 094/119] removed unused import --- tests/unit_tests/test_mesh_to_vtk.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/unit_tests/test_mesh_to_vtk.py b/tests/unit_tests/test_mesh_to_vtk.py index 572834f84..5da62cdef 100644 --- a/tests/unit_tests/test_mesh_to_vtk.py +++ b/tests/unit_tests/test_mesh_to_vtk.py @@ -1,5 +1,4 @@ import numpy as np -from os.path import exists from pathlib import Path import pytest import vtk From 58ccb82cf50a5ba76e622f96969ba4db6752a885 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 14:26:27 +0200 Subject: [PATCH 095/119] back to .dimension --- tests/unit_tests/test_mesh_to_vtk.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit_tests/test_mesh_to_vtk.py b/tests/unit_tests/test_mesh_to_vtk.py index 5da62cdef..451c869c2 100644 --- a/tests/unit_tests/test_mesh_to_vtk.py +++ b/tests/unit_tests/test_mesh_to_vtk.py @@ -32,7 +32,7 @@ def test_write_data_to_vtk(mesh, tmpdir): # BUILD filename = Path(tmpdir) / "out.vtk" - data = np.random.random(mesh.num_mesh_cells) + data = np.random.random(mesh.dimension[0]*mesh.dimension[1]*mesh.dimension[2]) # RUN mesh.write_data_to_vtk(filename=filename, datasets={"label1": data, "label2": data}) From 890c3ad0d58fa59532dc143e56c0100e4540fd0d Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 14:26:46 +0200 Subject: [PATCH 096/119] pytest.importorskip --- tests/unit_tests/test_mesh_to_vtk.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/unit_tests/test_mesh_to_vtk.py b/tests/unit_tests/test_mesh_to_vtk.py index 451c869c2..f651f5acb 100644 --- a/tests/unit_tests/test_mesh_to_vtk.py +++ b/tests/unit_tests/test_mesh_to_vtk.py @@ -1,7 +1,8 @@ import numpy as np from pathlib import Path import pytest -import vtk + +vtk = pytest.importorskip("vtk") from vtk.util import numpy_support as nps import openmc From 48a0d15b1aa6bbbfa2f3b3c85252a9d05c923028 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 14:36:54 +0200 Subject: [PATCH 097/119] added error raise + new test --- openmc/mesh.py | 53 ++++++++++++++++++++++------ tests/unit_tests/test_mesh_to_vtk.py | 17 ++++++++- 2 files changed, 59 insertions(+), 11 deletions(-) diff --git a/openmc/mesh.py b/openmc/mesh.py index b883a4a09..ada69887a 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -635,16 +635,22 @@ class RegularMesh(StructuredMesh): Returns: vtk.vtkStructuredGrid: the VTK object + + Raises: + RuntimeError: when the size of a dataset doesn't match the number of cells """ import vtk from vtk.util import numpy_support as nps # check that the data sets are appropriately sized + errmsg = "The size of the dataset {} should be equal to the number of cells" for label, dataset in datasets.items(): if isinstance(dataset, np.ndarray): - assert dataset.size == self.dimension[0] * self.dimension[1] * self.dimension[2] + if not dataset.size == self.dimension[0] * self.dimension[1]* self.dimension[2]: + raise RuntimeError(errmsg.format(label)) else: - assert len(dataset) == self.dimension[0] * self.dimension[1] * self.dimension[2] + if len(dataset) == self.dimension[0] * self.dimension[1]* self.dimension[2]: + raise RuntimeError(errmsg.format(label)) cv.check_type('label', label, str) x_vals = np.linspace( @@ -907,16 +913,22 @@ class RectilinearMesh(StructuredMesh): Returns: vtk.vtkStructuredGrid: the VTK object + + Raises: + RuntimeError: when the size of a dataset doesn't match the number of cells """ import vtk from vtk.util import numpy_support as nps # check that the data sets are appropriately sized + errmsg = "The size of the dataset {} should be equal to the number of cells" for label, dataset in datasets.items(): if isinstance(dataset, np.ndarray): - assert dataset.size == self.dimension[0] * self.dimension[1]* self.dimension[2] + if not dataset.size == self.dimension[0] * self.dimension[1]* self.dimension[2]: + raise RuntimeError(errmsg.format(label)) else: - assert len(dataset) == self.dimension[0] * self.dimension[1]* self.dimension[2] + if len(dataset) == self.dimension[0] * self.dimension[1]* self.dimension[2]: + raise RuntimeError(errmsg.format(label)) cv.check_type('label', label, str) x_vals = self.x_grid @@ -1160,16 +1172,22 @@ class CylindricalMesh(StructuredMesh): Returns: vtk.vtkStructuredGrid: the VTK object + + Raises: + RuntimeError: when the size of a dataset doesn't match the number of cells """ import vtk from vtk.util import numpy_support as nps # check that the data sets are appropriately sized + errmsg = "The size of the dataset {} should be equal to the number of cells" for label, dataset in datasets.items(): if isinstance(dataset, np.ndarray): - assert dataset.size == self.dimension[0] * self.dimension[1]* self.dimension[2] + if not dataset.size == self.dimension[0] * self.dimension[1]* self.dimension[2]: + raise RuntimeError(errmsg.format(label)) else: - assert len(dataset) == self.dimension[0] * self.dimension[1]* self.dimension[2] + if len(dataset) == self.dimension[0] * self.dimension[1]* self.dimension[2]: + raise RuntimeError(errmsg.format(label)) cv.check_type('label', label, str) vtk_grid = vtk.vtkStructuredGrid() @@ -1414,16 +1432,23 @@ class SphericalMesh(StructuredMesh): Returns: vtk.vtkStructuredGrid: the VTK object + + Raises: + RuntimeError: when the size of a dataset doesn't match the number of cells """ import vtk from vtk.util import numpy_support as nps # check that the data sets are appropriately sized + errmsg = "The size of the dataset {} should be equal to the number of cells" for label, dataset in datasets.items(): if isinstance(dataset, np.ndarray): - assert dataset.size == self.dimension[0] * self.dimension[1]* self.dimension[2] + if not dataset.size == self.dimension[0] * self.dimension[1]* self.dimension[2]: + raise RuntimeError(errmsg.format(label)) else: - assert len(dataset) == self.dimension[0] * self.dimension[1]* self.dimension[2] + if len(dataset) == self.dimension[0] * self.dimension[1]* self.dimension[2]: + raise RuntimeError(errmsg.format(label)) + cv.check_type('label', label, str) vtk_grid = vtk.vtkStructuredGrid() @@ -1642,6 +1667,11 @@ class UnstructuredMesh(MeshBase): volume_normalization : bool Whether or not to normalize the data by the volume of the mesh elements + + Raises + ------ + RuntimeError + when the size of a dataset doesn't match the number of cells """ import vtk @@ -1658,11 +1688,14 @@ class UnstructuredMesh(MeshBase): " mesh information from a statepoint file.") # check that the data sets are appropriately sized + errmsg = "The size of the dataset {} should be equal to the number of cells" for label, dataset in datasets.items(): if isinstance(dataset, np.ndarray): - assert dataset.size == self.n_elements + if not dataset.size == self.dimension[0] * self.dimension[1]* self.dimension[2]: + raise RuntimeError(errmsg.format(label)) else: - assert len(dataset) == self.n_elements + if len(dataset) == self.dimension[0] * self.dimension[1]* self.dimension[2]: + raise RuntimeError(errmsg.format(label)) cv.check_type('label', label, str) # create data arrays for the cells/points diff --git a/tests/unit_tests/test_mesh_to_vtk.py b/tests/unit_tests/test_mesh_to_vtk.py index f651f5acb..9022feecd 100644 --- a/tests/unit_tests/test_mesh_to_vtk.py +++ b/tests/unit_tests/test_mesh_to_vtk.py @@ -56,4 +56,19 @@ def test_write_data_to_vtk(mesh, tmpdir): # check size of datasets assert nps.vtk_to_numpy(array1).size == data.size - assert nps.vtk_to_numpy(array2).size == data.size \ No newline at end of file + assert nps.vtk_to_numpy(array2).size == data.size + +@pytest.mark.parametrize("mesh", [cylinder_mesh, regular_mesh, rectilinear_mesh, spherical_mesh]) +def test_write_data_to_vtk_size_mismatch(mesh): + """Checks that an error is raised when the size of the dataset + doesn't match the mesh number of cells + + Args: + mesh (openmc.StructuredMesh): the mesh to test + """ + right_size = mesh.dimension[0]*mesh.dimension[1]*mesh.dimension[2] + data = np.random.random(right_size + 1) + + expected_error_msg = "The size of the dataset label should be equal to the number of cells" + with pytest.raises(RuntimeError, match=expected_error_msg): + mesh.write_data_to_vtk(filename="out.vtk", datasets={"label": data}) \ No newline at end of file From 8857b769324f299ad410926b2542c7b7a24a895f Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 14:50:28 +0200 Subject: [PATCH 098/119] refactored by adding StructuredMesh.write_data_to_vtk() --- openmc/mesh.py | 260 +++++++++++++------------------------------------ 1 file changed, 70 insertions(+), 190 deletions(-) diff --git a/openmc/mesh.py b/openmc/mesh.py index ada69887a..5083b215c 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -193,6 +193,51 @@ class StructuredMesh(MeshBase): s1 = (slice(1, None),)*ndim + (slice(None),) return (vertices[s0] + vertices[s1]) / 2 + def write_data_to_vtk(self, points, filename, datasets, volume_normalization=True): + import vtk + from vtk.util import numpy_support as nps + + # check that the data sets are appropriately sized + errmsg = "The size of the dataset {} should be equal to the number of cells" + for label, dataset in datasets.items(): + if isinstance(dataset, np.ndarray): + if not dataset.size == self.dimension[0] * self.dimension[1]* self.dimension[2]: + raise RuntimeError(errmsg.format(label)) + else: + if len(dataset) == self.dimension[0] * self.dimension[1]* self.dimension[2]: + raise RuntimeError(errmsg.format(label)) + cv.check_type('label', label, str) + + vtk_grid = vtk.vtkStructuredGrid() + + vtk_grid.SetDimensions(*self.dimension) + + vtkPts = vtk.vtkPoints() + vtkPts.SetData(nps.numpy_to_vtk(points, deep=True)) + vtk_grid.SetPoints(vtkPts) + + # create VTK arrays for each of + # the data sets + for label, dataset in datasets.items(): + dataset = np.asarray(dataset).flatten() + + if volume_normalization: + dataset /= self.volumes.flatten() + + dataset_array = vtk.vtkDoubleArray() + dataset_array.SetName(label) + dataset_array.SetArray(nps.numpy_to_vtk(dataset), + dataset.size, + True) + vtk_grid.GetCellData().AddArray(dataset_array) + + # write the .vtk file + writer = vtk.vtkStructuredGridWriter() + writer.SetFileName(str(filename)) + writer.SetInputData(vtk_grid) + writer.Write() + + return vtk_grid class RegularMesh(StructuredMesh): """A regular Cartesian mesh in one, two, or three dimensions @@ -635,23 +680,7 @@ class RegularMesh(StructuredMesh): Returns: vtk.vtkStructuredGrid: the VTK object - - Raises: - RuntimeError: when the size of a dataset doesn't match the number of cells """ - import vtk - from vtk.util import numpy_support as nps - - # check that the data sets are appropriately sized - errmsg = "The size of the dataset {} should be equal to the number of cells" - for label, dataset in datasets.items(): - if isinstance(dataset, np.ndarray): - if not dataset.size == self.dimension[0] * self.dimension[1]* self.dimension[2]: - raise RuntimeError(errmsg.format(label)) - else: - if len(dataset) == self.dimension[0] * self.dimension[1]* self.dimension[2]: - raise RuntimeError(errmsg.format(label)) - cv.check_type('label', label, str) x_vals = np.linspace( self.lower_left[0], @@ -668,39 +697,16 @@ class RegularMesh(StructuredMesh): self.upper_right[2], num=self.dimension[2] + 1, ) - vtk_grid = vtk.vtkStructuredGrid() - - vtk_grid.SetDimensions(len(x_vals), len(y_vals), len(z_vals)) # create points pts_cartesian = np.array([[x, y, z] for z in z_vals for y in y_vals for x in x_vals]) - vtkPts = vtk.vtkPoints() - vtkPts.SetData(nps.numpy_to_vtk(pts_cartesian, deep=True)) - vtk_grid.SetPoints(vtkPts) - - # create VTK arrays for each of - # the data sets - for label, dataset in datasets.items(): - dataset = np.asarray(dataset).flatten() - - if volume_normalization: - dataset /= self.volumes.flatten() - - dataset_array = vtk.vtkDoubleArray() - dataset_array.SetName(label) - dataset_array.SetArray(nps.numpy_to_vtk(dataset), - dataset.size, - True) - vtk_grid.GetCellData().AddArray(dataset_array) - - # write the .vtk file - writer = vtk.vtkStructuredGridWriter() - writer.SetFileName(str(filename)) - writer.SetInputData(vtk_grid) - writer.Write() - - return vtk_grid + return super().write_data_to_vtk( + points=pts_cartesian, + filename=filename, + datasets=datasets, + volume_normalization=volume_normalization + ) def Mesh(*args, **kwargs): warnings.warn("Mesh has been renamed RegularMesh. Future versions of " @@ -913,60 +919,16 @@ class RectilinearMesh(StructuredMesh): Returns: vtk.vtkStructuredGrid: the VTK object - - Raises: - RuntimeError: when the size of a dataset doesn't match the number of cells """ - import vtk - from vtk.util import numpy_support as nps - - # check that the data sets are appropriately sized - errmsg = "The size of the dataset {} should be equal to the number of cells" - for label, dataset in datasets.items(): - if isinstance(dataset, np.ndarray): - if not dataset.size == self.dimension[0] * self.dimension[1]* self.dimension[2]: - raise RuntimeError(errmsg.format(label)) - else: - if len(dataset) == self.dimension[0] * self.dimension[1]* self.dimension[2]: - raise RuntimeError(errmsg.format(label)) - cv.check_type('label', label, str) - - x_vals = self.x_grid - y_vals = self.y_grid - z_vals = self.z_grid - vtk_grid = vtk.vtkStructuredGrid() - - vtk_grid.SetDimensions(len(x_vals), len(y_vals), len(z_vals)) - # create points - pts_cartesian = np.array([[x, y, z] for z in z_vals for y in y_vals for x in x_vals]) + pts_cartesian = np.array([[x, y, z] for z in self.z_grid for y in self.y_grid for x in self.x_grid]) - vtkPts = vtk.vtkPoints() - vtkPts.SetData(nps.numpy_to_vtk(pts_cartesian, deep=True)) - vtk_grid.SetPoints(vtkPts) - - # create VTK arrays for each of - # the data sets - for label, dataset in datasets.items(): - dataset = np.asarray(dataset).flatten() - - if volume_normalization: - dataset /= self.volumes.flatten() - - dataset_array = vtk.vtkDoubleArray() - dataset_array.SetName(label) - dataset_array.SetArray(nps.numpy_to_vtk(dataset), - dataset.size, - True) - vtk_grid.GetCellData().AddArray(dataset_array) - - # write the .vtk file - writer = vtk.vtkStructuredGridWriter() - writer.SetFileName(filename) - writer.SetInputData(vtk_grid) - writer.Write() - - return vtk_grid + return super().write_data_to_vtk( + points=pts_cartesian, + filename=filename, + datasets=datasets, + volume_normalization=volume_normalization + ) class CylindricalMesh(StructuredMesh): @@ -1172,28 +1134,7 @@ class CylindricalMesh(StructuredMesh): Returns: vtk.vtkStructuredGrid: the VTK object - - Raises: - RuntimeError: when the size of a dataset doesn't match the number of cells """ - import vtk - from vtk.util import numpy_support as nps - - # check that the data sets are appropriately sized - errmsg = "The size of the dataset {} should be equal to the number of cells" - for label, dataset in datasets.items(): - if isinstance(dataset, np.ndarray): - if not dataset.size == self.dimension[0] * self.dimension[1]* self.dimension[2]: - raise RuntimeError(errmsg.format(label)) - else: - if len(dataset) == self.dimension[0] * self.dimension[1]* self.dimension[2]: - raise RuntimeError(errmsg.format(label)) - cv.check_type('label', label, str) - - vtk_grid = vtk.vtkStructuredGrid() - - vtk_grid.SetDimensions(len(self.r_grid), len(self.phi_grid), len(self.z_grid)) - # create points pts_cylindrical = np.array([[r, phi, z] for z in self.z_grid for phi in self.phi_grid for r in self.r_grid]) pts_cartesian = np.copy(pts_cylindrical) @@ -1201,32 +1142,12 @@ class CylindricalMesh(StructuredMesh): pts_cartesian[:, 0] = r * np.cos(phi) pts_cartesian[:, 1] = r * np.sin(phi) - vtkPts = vtk.vtkPoints() - vtkPts.SetData(nps.numpy_to_vtk(pts_cartesian, deep=True)) - vtk_grid.SetPoints(vtkPts) - - # create VTK arrays for each of - # the data sets - for label, dataset in datasets.items(): - dataset = np.asarray(dataset).flatten() - - if volume_normalization: - dataset /= self.volumes.flatten() - - dataset_array = vtk.vtkDoubleArray() - dataset_array.SetName(label) - dataset_array.SetArray(nps.numpy_to_vtk(dataset), - dataset.size, - True) - vtk_grid.GetCellData().AddArray(dataset_array) - - - writer = vtk.vtkStructuredGridWriter() - writer.SetFileName(filename) - writer.SetInputData(vtk_grid) - writer.Write() - - return vtk_grid + return super().write_data_to_vtk( + points=pts_cartesian, + filename=filename, + datasets=datasets, + volume_normalization=volume_normalization + ) class SphericalMesh(StructuredMesh): """A 3D spherical mesh @@ -1432,28 +1353,7 @@ class SphericalMesh(StructuredMesh): Returns: vtk.vtkStructuredGrid: the VTK object - - Raises: - RuntimeError: when the size of a dataset doesn't match the number of cells """ - import vtk - from vtk.util import numpy_support as nps - - # check that the data sets are appropriately sized - errmsg = "The size of the dataset {} should be equal to the number of cells" - for label, dataset in datasets.items(): - if isinstance(dataset, np.ndarray): - if not dataset.size == self.dimension[0] * self.dimension[1]* self.dimension[2]: - raise RuntimeError(errmsg.format(label)) - else: - if len(dataset) == self.dimension[0] * self.dimension[1]* self.dimension[2]: - raise RuntimeError(errmsg.format(label)) - - cv.check_type('label', label, str) - - vtk_grid = vtk.vtkStructuredGrid() - - vtk_grid.SetDimensions(len(self.r_grid), len(self.theta_grid), len(self.phi_grid)) # create points pts_spherical = np.array([[r, theta, phi] for phi in self.phi_grid for theta in self.theta_grid for r in self.r_grid]) @@ -1463,32 +1363,12 @@ class SphericalMesh(StructuredMesh): pts_cartesian[:, 1] = r * np.sin(phi) * np.sin(theta) pts_cartesian[:, 2] = r * np.cos(phi) - vtkPts = vtk.vtkPoints() - vtkPts.SetData(nps.numpy_to_vtk(pts_cartesian, deep=True)) - vtk_grid.SetPoints(vtkPts) - - # create VTK arrays for each of - # the data sets - for label, dataset in datasets.items(): - dataset = np.asarray(dataset).flatten() - - if volume_normalization: - dataset /= self.volumes.flatten() - - dataset_array = vtk.vtkDoubleArray() - dataset_array.SetName(label) - dataset_array.SetArray(nps.numpy_to_vtk(dataset), - dataset.size, - True) - vtk_grid.GetCellData().AddArray(dataset_array) - - # write the .vtk file - writer = vtk.vtkStructuredGridWriter() - writer.SetFileName(filename) - writer.SetInputData(vtk_grid) - writer.Write() - - return vtk_grid + return super().write_data_to_vtk( + points=pts_cartesian, + filename=filename, + datasets=datasets, + volume_normalization=volume_normalization + ) class UnstructuredMesh(MeshBase): From 0c4de41f5076acbd93efaad6cdb970e26c890964 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 14:56:27 +0200 Subject: [PATCH 099/119] docstrings --- openmc/mesh.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/openmc/mesh.py b/openmc/mesh.py index 5083b215c..449edb8d6 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -194,6 +194,24 @@ class StructuredMesh(MeshBase): return (vertices[s0] + vertices[s1]) / 2 def write_data_to_vtk(self, points, filename, datasets, volume_normalization=True): + """Creates a VTK object of the mesh + + Args: + points (list or np.array): List of (X,Y,Y) tuples. + filename (str): Name of the VTK file to write. + datasets (dict): Dictionary whose keys are the data labels + and values are the data sets. + volume_normalization (bool, optional): Whether or not to + normalize the data by the volume of the mesh elements. + Defaults to True. + + Raises: + RuntimeError: when the size of a dataset doesn't match the number of cells + + Returns: + vtk.vtkStructuredGrid: the VTK object + """ + import vtk from vtk.util import numpy_support as nps From ad73f03a0d712311b0d5ef80f0456d2c35b61dbe Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 15:02:20 +0200 Subject: [PATCH 100/119] converted docstrings to numpy style --- openmc/mesh.py | 129 +++++++++++++++++++++++++++++++------------------ 1 file changed, 81 insertions(+), 48 deletions(-) diff --git a/openmc/mesh.py b/openmc/mesh.py index 449edb8d6..aa338f97e 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -196,20 +196,29 @@ class StructuredMesh(MeshBase): def write_data_to_vtk(self, points, filename, datasets, volume_normalization=True): """Creates a VTK object of the mesh - Args: - points (list or np.array): List of (X,Y,Y) tuples. - filename (str): Name of the VTK file to write. - datasets (dict): Dictionary whose keys are the data labels - and values are the data sets. - volume_normalization (bool, optional): Whether or not to - normalize the data by the volume of the mesh elements. - Defaults to True. + Parameters + ---------- + points : list or np.array + List of (X,Y,Y) tuples. + filename : str + Name of the VTK file to write. + datasets : dict + Dictionary whose keys are the data labels + and values are the data sets. + volume_normalization : bool, optional + Whether or not to normalize the data by + the volume of the mesh elements. + Defaults to True. - Raises: - RuntimeError: when the size of a dataset doesn't match the number of cells + Raises + ------ + RuntimeError + When the size of a dataset doesn't match the number of cells - Returns: - vtk.vtkStructuredGrid: the VTK object + Returns + ------- + vtk.vtkStructuredGrid + the VTK object """ import vtk @@ -688,16 +697,22 @@ class RegularMesh(StructuredMesh): def write_data_to_vtk(self, filename, datasets, volume_normalization=True): """Creates a VTK object of the mesh - Args: - filename (str): Name of the VTK file to write. - datasets (dict): Dictionary whose keys are the data labels - and values are the data sets. - volume_normalization (bool, optional): Whether or not to - normalize the data by the volume of the mesh elements. - Defaults to True. + Parameters + ---------- + filename : str + Name of the VTK file to write. + datasets : dict + Dictionary whose keys are the data labels + and values are the data sets. + volume_normalization : bool, optional + Whether or not to normalize the data by + the volume of the mesh elements. + Defaults to True. - Returns: - vtk.vtkStructuredGrid: the VTK object + Returns + ------- + vtk.vtkStructuredGrid + the VTK object """ x_vals = np.linspace( @@ -927,16 +942,22 @@ class RectilinearMesh(StructuredMesh): def write_data_to_vtk(self, filename, datasets, volume_normalization=True): """Creates a VTK object of the mesh - Args: - filename (str): Name of the VTK file to write. - datasets (dict): Dictionary whose keys are the data labels - and values are the data sets. - volume_normalization (bool, optional): Whether or not to - normalize the data by the volume of the mesh elements. - Defaults to True. + Parameters + ---------- + filename : str + Name of the VTK file to write. + datasets : dict + Dictionary whose keys are the data labels + and values are the data sets. + volume_normalization : bool, optional + Whether or not to normalize the data by + the volume of the mesh elements. + Defaults to True. - Returns: - vtk.vtkStructuredGrid: the VTK object + Returns + ------- + vtk.vtkStructuredGrid + the VTK object """ # create points pts_cartesian = np.array([[x, y, z] for z in self.z_grid for y in self.y_grid for x in self.x_grid]) @@ -1142,16 +1163,22 @@ class CylindricalMesh(StructuredMesh): def write_data_to_vtk(self, filename, datasets, volume_normalization=True): """Creates a VTK object of the mesh - Args: - filename (str): Name of the VTK file to write. - datasets (dict): Dictionary whose keys are the data labels - and values are the data sets. - volume_normalization (bool, optional): Whether or not to - normalize the data by the volume of the mesh elements. - Defaults to True. + Parameters + ---------- + filename : str + Name of the VTK file to write. + datasets : dict + Dictionary whose keys are the data labels + and values are the data sets. + volume_normalization : bool, optional + Whether or not to normalize the data by + the volume of the mesh elements. + Defaults to True. - Returns: - vtk.vtkStructuredGrid: the VTK object + Returns + ------- + vtk.vtkStructuredGrid + the VTK object """ # create points pts_cylindrical = np.array([[r, phi, z] for z in self.z_grid for phi in self.phi_grid for r in self.r_grid]) @@ -1361,16 +1388,22 @@ class SphericalMesh(StructuredMesh): def write_data_to_vtk(self, filename, datasets, volume_normalization=True): """Creates a VTK object of the mesh - Args: - filename (str): Name of the VTK file to write. - datasets (dict): Dictionary whose keys are the data labels - and values are the data sets. - volume_normalization (bool, optional): Whether or not to - normalize the data by the volume of the mesh elements. - Defaults to True. + Parameters + ---------- + filename : str + Name of the VTK file to write. + datasets : dict + Dictionary whose keys are the data labels + and values are the data sets. + volume_normalization : bool, optional + Whether or not to normalize the data by + the volume of the mesh elements. + Defaults to True. - Returns: - vtk.vtkStructuredGrid: the VTK object + Returns + ------- + vtk.vtkStructuredGrid + the VTK object """ # create points From a2299063f5b4061a2eb2cd762004439fadbab57c Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 15:02:52 +0200 Subject: [PATCH 101/119] converted docstrings to numpy style --- tests/unit_tests/test_mesh_to_vtk.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/unit_tests/test_mesh_to_vtk.py b/tests/unit_tests/test_mesh_to_vtk.py index 9022feecd..9247540a0 100644 --- a/tests/unit_tests/test_mesh_to_vtk.py +++ b/tests/unit_tests/test_mesh_to_vtk.py @@ -63,8 +63,10 @@ def test_write_data_to_vtk_size_mismatch(mesh): """Checks that an error is raised when the size of the dataset doesn't match the mesh number of cells - Args: - mesh (openmc.StructuredMesh): the mesh to test + Parameters + ---------- + mesh : openmc.StructuredMesh + The mesh to test """ right_size = mesh.dimension[0]*mesh.dimension[1]*mesh.dimension[2] data = np.random.random(right_size + 1) From d80bf7bdb596a7169f0e28d42b363d1886c43448 Mon Sep 17 00:00:00 2001 From: Patrick Myers <90068356+myerspat@users.noreply.github.com> Date: Wed, 29 Jun 2022 09:25:59 -0500 Subject: [PATCH 102/119] Added comments explaining reasoning for 2D xtensor xs in photon.h Co-authored-by: Paul Romano --- include/openmc/photon.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/openmc/photon.h b/include/openmc/photon.h index 50ee228c4..09fb3ba01 100644 --- a/include/openmc/photon.h +++ b/include/openmc/photon.h @@ -79,7 +79,9 @@ public: Tabulated1D coherent_anomalous_real_; Tabulated1D coherent_anomalous_imag_; - // Photoionization and atomic relaxation data + // Photoionization and atomic relaxation data. Subshell cross sections are + // stored separately to improve memory access pattern when calculating the + // total cross section vector shells_; xt::xtensor cross_sections_; From 2c5a845897aeb973448f31cea2d9256754262e3e Mon Sep 17 00:00:00 2001 From: Patrick Myers <90068356+myerspat@users.noreply.github.com> Date: Wed, 29 Jun 2022 09:26:36 -0500 Subject: [PATCH 103/119] Removed an include from photon.cpp Co-authored-by: Paul Romano --- src/photon.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/photon.cpp b/src/photon.cpp index 85bd435c9..a127ac2fe 100644 --- a/src/photon.cpp +++ b/src/photon.cpp @@ -17,7 +17,6 @@ #include "xtensor/xmath.hpp" #include "xtensor/xoperation.hpp" #include "xtensor/xslice.hpp" -#include "xtensor/xtensor_forward.hpp" #include "xtensor/xview.hpp" #include From c38ed4d8759704e829454abfc12dfa2189dd4bf1 Mon Sep 17 00:00:00 2001 From: myerspat Date: Wed, 29 Jun 2022 09:37:18 -0500 Subject: [PATCH 104/119] used placeholders namespace and added comment about variables initialized --- src/photon.cpp | 6 ++++-- src/physics.cpp | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/photon.cpp b/src/photon.cpp index a127ac2fe..2f9bc5e3d 100644 --- a/src/photon.cpp +++ b/src/photon.cpp @@ -46,6 +46,8 @@ vector> elements; PhotonInteraction::PhotonInteraction(hid_t group) { + using namespace xt::placeholders; + // Set index of element in global vector index_ = data::elements.size(); @@ -164,8 +166,8 @@ PhotonInteraction::PhotonInteraction(hid_t group) close_dataset(dset); read_dataset(tgroup, "xs", xs); - auto cross_section = xt::view( - cross_sections_, xt::range(shell.threshold, xt::placeholders::_), i); + auto cross_section = + xt::view(cross_sections_, xt::range(shell.threshold, _), i); cross_section = xt::where(xs > 0, xt::log(xs), 0); if (object_exists(tgroup, "transitions")) { diff --git a/src/physics.cpp b/src/physics.cpp index cc712affd..bcdcf7ecf 100644 --- a/src/physics.cpp +++ b/src/physics.cpp @@ -347,7 +347,8 @@ void sample_photon_reaction(Particle& p) double prob_after = prob + micro.photoelectric; if (prob_after > cutoff) { - + // Get grid index, interpolation factor, and bounding subshell + // cross sections int i_grid = micro.index_grid; double f = micro.interp_factor; const auto& xs_lower = xt::row(element.cross_sections_, i_grid); From 7cba2ad03012658481c6edbc04f070892e90dd3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Delaporte-Mathurin?= <40028739+RemDelaporteMathurin@users.noreply.github.com> Date: Wed, 29 Jun 2022 18:46:10 +0200 Subject: [PATCH 105/119] [skip ci] X Y Y typo Co-authored-by: Paul Romano --- openmc/mesh.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/mesh.py b/openmc/mesh.py index aa338f97e..90f4c55a9 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -199,7 +199,7 @@ class StructuredMesh(MeshBase): Parameters ---------- points : list or np.array - List of (X,Y,Y) tuples. + List of (X,Y,Z) tuples. filename : str Name of the VTK file to write. datasets : dict From 5180ab3f8a6031cfbcd708c04e7fd23f8936085a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Delaporte-Mathurin?= <40028739+RemDelaporteMathurin@users.noreply.github.com> Date: Wed, 29 Jun 2022 18:46:43 +0200 Subject: [PATCH 106/119] [skip ci] removed default value Co-authored-by: Paul Romano --- openmc/mesh.py | 1 - 1 file changed, 1 deletion(-) diff --git a/openmc/mesh.py b/openmc/mesh.py index 90f4c55a9..73a49bfc1 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -208,7 +208,6 @@ class StructuredMesh(MeshBase): volume_normalization : bool, optional Whether or not to normalize the data by the volume of the mesh elements. - Defaults to True. Raises ------ From 94ef0c40abe6f4a208aaaccad36c17ff486dd9b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Delaporte-Mathurin?= <40028739+RemDelaporteMathurin@users.noreply.github.com> Date: Wed, 29 Jun 2022 18:47:24 +0200 Subject: [PATCH 107/119] [skip ci] refactore upperright and lowerleft Co-authored-by: Paul Romano --- openmc/mesh.py | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/openmc/mesh.py b/openmc/mesh.py index 73a49bfc1..7155b0ba0 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -714,21 +714,10 @@ class RegularMesh(StructuredMesh): the VTK object """ - x_vals = np.linspace( - self.lower_left[0], - self.upper_right[0], - num=self.dimension[0] + 1, - ) - y_vals = np.linspace( - self.lower_left[1], - self.upper_right[1], - num=self.dimension[1] + 1, - ) - z_vals = np.linspace( - self.lower_left[2], - self.upper_right[2], - num=self.dimension[2] + 1, - ) + ll, ur = self.lower_left, self.upper_right + x_vals = np.linspace(ll[0], ur[0], num=self.dimension[0] + 1) + y_vals = np.linspace(ll[1], ur[1], num=self.dimension[1] + 1) + z_vals = np.linspace(ll[2], ur[2], num=self.dimension[2] + 1) # create points pts_cartesian = np.array([[x, y, z] for z in z_vals for y in y_vals for x in x_vals]) From 96c89f138daa97f78cb996449a32a88ca58754ff Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 19:01:39 +0200 Subject: [PATCH 108/119] multiple lines --- openmc/mesh.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/openmc/mesh.py b/openmc/mesh.py index 7155b0ba0..209002e42 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -1169,7 +1169,14 @@ class CylindricalMesh(StructuredMesh): the VTK object """ # create points - pts_cylindrical = np.array([[r, phi, z] for z in self.z_grid for phi in self.phi_grid for r in self.r_grid]) + pts_cylindrical = np.array( + [ + [r, phi, z] + for z in self.z_grid + for phi in self.phi_grid + for r in self.r_grid + ] + ) pts_cartesian = np.copy(pts_cylindrical) r, phi = pts_cylindrical[:, 0], pts_cylindrical[:, 1] pts_cartesian[:, 0] = r * np.cos(phi) @@ -1395,7 +1402,14 @@ class SphericalMesh(StructuredMesh): """ # create points - pts_spherical = np.array([[r, theta, phi] for phi in self.phi_grid for theta in self.theta_grid for r in self.r_grid]) + pts_spherical = np.array( + [ + [r, theta, phi] + for phi in self.phi_grid + for theta in self.theta_grid + for r in self.r_grid + ] + ) pts_cartesian = np.copy(pts_spherical) r, theta, phi = pts_spherical[:, 0], pts_spherical[:, 1], pts_spherical[:, 2] pts_cartesian[:, 0] = r * np.sin(phi) * np.cos(theta) From fabe3e607c92891ec740aefa632eba010428eef2 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Wed, 29 Jun 2022 19:02:25 +0200 Subject: [PATCH 109/119] pathlib --- openmc/mesh.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/openmc/mesh.py b/openmc/mesh.py index 209002e42..2a53c8a91 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -698,7 +698,7 @@ class RegularMesh(StructuredMesh): Parameters ---------- - filename : str + filename : str or pathlib.Path Name of the VTK file to write. datasets : dict Dictionary whose keys are the data labels @@ -932,7 +932,7 @@ class RectilinearMesh(StructuredMesh): Parameters ---------- - filename : str + filename : str or pathlib.Path Name of the VTK file to write. datasets : dict Dictionary whose keys are the data labels @@ -1153,7 +1153,7 @@ class CylindricalMesh(StructuredMesh): Parameters ---------- - filename : str + filename : str or pathlib.Path Name of the VTK file to write. datasets : dict Dictionary whose keys are the data labels @@ -1385,7 +1385,7 @@ class SphericalMesh(StructuredMesh): Parameters ---------- - filename : str + filename : str or pathlib.Path Name of the VTK file to write. datasets : dict Dictionary whose keys are the data labels @@ -1592,7 +1592,7 @@ class UnstructuredMesh(MeshBase): Parameters ---------- - filename : str + filename : str or pathlib.Path Name of the VTK file to write. datasets : dict Dictionary whose keys are the data labels From 0b0265cb592685d8e6daec688229996d7b7e9f5a Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Fri, 1 Jul 2022 11:37:16 +0200 Subject: [PATCH 110/119] adapted tests --- tests/unit_tests/test_mesh_to_vtk.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/unit_tests/test_mesh_to_vtk.py b/tests/unit_tests/test_mesh_to_vtk.py index 9247540a0..26a393b41 100644 --- a/tests/unit_tests/test_mesh_to_vtk.py +++ b/tests/unit_tests/test_mesh_to_vtk.py @@ -33,7 +33,7 @@ def test_write_data_to_vtk(mesh, tmpdir): # BUILD filename = Path(tmpdir) / "out.vtk" - data = np.random.random(mesh.dimension[0]*mesh.dimension[1]*mesh.dimension[2]) + data = np.random.random(mesh.num_mesh_cells) # RUN mesh.write_data_to_vtk(filename=filename, datasets={"label1": data, "label2": data}) @@ -68,7 +68,7 @@ def test_write_data_to_vtk_size_mismatch(mesh): mesh : openmc.StructuredMesh The mesh to test """ - right_size = mesh.dimension[0]*mesh.dimension[1]*mesh.dimension[2] + right_size = mesh.num_mesh_cells data = np.random.random(right_size + 1) expected_error_msg = "The size of the dataset label should be equal to the number of cells" From 9c892f04dbd36bc423a0560b72bb2da3a1b2a21a Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Fri, 1 Jul 2022 09:42:35 +0000 Subject: [PATCH 111/119] added num_mesh_cells property to StructuredMesh --- openmc/mesh.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/openmc/mesh.py b/openmc/mesh.py index 2a53c8a91..925a63aee 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -193,6 +193,10 @@ class StructuredMesh(MeshBase): s1 = (slice(1, None),)*ndim + (slice(None),) return (vertices[s0] + vertices[s1]) / 2 + @property + def num_mesh_cells(self): + return np.prod(self.dimension) + def write_data_to_vtk(self, points, filename, datasets, volume_normalization=True): """Creates a VTK object of the mesh @@ -1547,6 +1551,7 @@ class UnstructuredMesh(MeshBase): "been loaded from a statepoint file.") return len(self._centroids) + @centroids.setter def centroids(self, centroids): cv.check_type("Unstructured mesh centroids", centroids, From 52d59a4c1a924039ca6eb790a1786fe85fce7574 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Fri, 1 Jul 2022 09:43:44 +0000 Subject: [PATCH 112/119] minor refactoring --- openmc/mesh.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/openmc/mesh.py b/openmc/mesh.py index 925a63aee..d5a460baa 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -348,10 +348,6 @@ class RegularMesh(StructuredMesh): dims = self._dimension return [(u - l) / d for u, l, d in zip(us, ls, dims)] - @property - def num_mesh_cells(self): - return np.prod(self._dimension) - @property def volumes(self): """Return Volumes for every mesh cell From a95d02dd91c9ac51d16843f04c503df4ed9d4261 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 7 Jul 2022 22:29:56 -0500 Subject: [PATCH 113/119] Update version pins of sphinx and sphinx_rtd_theme --- docs/requirements-rtd.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/requirements-rtd.txt b/docs/requirements-rtd.txt index c3d1c0372..9591d482f 100644 --- a/docs/requirements-rtd.txt +++ b/docs/requirements-rtd.txt @@ -1,4 +1,5 @@ -sphinx==4.3.0 +sphinx==5.0.2 +sphinx_rtd_theme==1.0.0 sphinx-numfig jupyter sphinxcontrib-katex From ff15c98b67dc231de6e4e22f70de1892f6ec7746 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 8 Jul 2022 08:05:51 -0500 Subject: [PATCH 114/119] Add test checking that collision/tracklength estimators agree for sph/cyl mesh --- tests/unit_tests/test_filter_mesh.py | 109 +++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 tests/unit_tests/test_filter_mesh.py diff --git a/tests/unit_tests/test_filter_mesh.py b/tests/unit_tests/test_filter_mesh.py new file mode 100644 index 000000000..265642360 --- /dev/null +++ b/tests/unit_tests/test_filter_mesh.py @@ -0,0 +1,109 @@ +import numpy as np +import openmc +from uncertainties import unumpy + + +def test_spherical_mesh_estimators(run_in_tmpdir): + """Test that collision/tracklength estimators agree for SphericalMesh""" + + mat = openmc.Material() + mat.add_nuclide('U235', 1.0) + mat.set_density('g/cm3', 10.0) + + sphere = openmc.Sphere(r=10.0, boundary_type='vacuum') + cell = openmc.Cell(fill=mat, region=-sphere) + model = openmc.Model() + model.geometry = openmc.Geometry([cell]) + model.settings.particles = 1_000 + model.settings.inactive = 10 + model.settings.batches = 20 + + sph_mesh = openmc.SphericalMesh() + sph_mesh.r_grid = np.linspace(0.0, 5.0**3, 20)**(1/3) + tally1 = openmc.Tally() + tally1.filters = [openmc.MeshFilter(sph_mesh)] + tally1.scores = ['flux'] + tally1.estimator = 'collision' + + sph_mesh = openmc.SphericalMesh() + sph_mesh.r_grid = np.linspace(0.0, 5.0**3, 20)**(1/3) + tally2 = openmc.Tally() + tally2.filters = [openmc.MeshFilter(sph_mesh)] + tally2.scores = ['flux'] + tally2.estimator = 'tracklength' + + model.tallies = openmc.Tallies([tally1, tally2]) + + # Run OpenMC + sp_filename = model.run() + + # Get radial flux distribution + with openmc.StatePoint(sp_filename) as sp: + flux_collision = sp.tallies[tally1.id].mean.ravel() + flux_collision_unc = sp.tallies[tally1.id].std_dev.ravel() + flux_tracklength = sp.tallies[tally2.id].mean.ravel() + flux_tracklength_unc = sp.tallies[tally2.id].std_dev.ravel() + + # Construct arrays with uncertainties + collision = unumpy.uarray(flux_collision, flux_collision_unc) + tracklength = unumpy.uarray(flux_tracklength, flux_tracklength_unc) + delta = collision - tracklength + + # Check that difference is within uncertainty + diff = unumpy.nominal_values(delta) + std_dev = unumpy.std_devs(delta) + assert np.all(diff < 3*std_dev) + + +def test_cylindrical_mesh_estimators(run_in_tmpdir): + """Test that collision/tracklength estimators agree for CylindricalMesh""" + + mat = openmc.Material() + mat.add_nuclide('U235', 1.0) + mat.set_density('g/cm3', 10.0) + + cyl = openmc.model.RightCircularCylinder((0., 0., -5.), 10., 10.0, boundary_type='vacuum') + cell = openmc.Cell(fill=mat, region=-cyl) + model = openmc.Model() + model.geometry = openmc.Geometry([cell]) + model.settings.particles = 1_000 + model.settings.inactive = 10 + model.settings.batches = 20 + + cyl_mesh = openmc.CylindricalMesh() + cyl_mesh.r_grid = np.linspace(0.0, 5.0**3, 20)**(1/3) + cyl_mesh.z_grid = [-5., 5.] + tally1 = openmc.Tally() + tally1.filters = [openmc.MeshFilter(cyl_mesh)] + tally1.scores = ['flux'] + tally1.estimator = 'collision' + + cyl_mesh = openmc.CylindricalMesh() + cyl_mesh.r_grid = np.linspace(0.0, 5.0**3, 20)**(1/3) + cyl_mesh.z_grid = [-5., 5.] + tally2 = openmc.Tally() + tally2.filters = [openmc.MeshFilter(cyl_mesh)] + tally2.scores = ['flux'] + tally2.estimator = 'tracklength' + + model.tallies = openmc.Tallies([tally1, tally2]) + + # Run OpenMC + sp_filename = model.run() + + # Get radial flux distribution + with openmc.StatePoint(sp_filename) as sp: + flux_collision = sp.tallies[tally1.id].mean.ravel() + flux_collision_unc = sp.tallies[tally1.id].std_dev.ravel() + flux_tracklength = sp.tallies[tally2.id].mean.ravel() + flux_tracklength_unc = sp.tallies[tally2.id].std_dev.ravel() + + # Construct arrays with uncertainties + collision = unumpy.uarray(flux_collision, flux_collision_unc) + tracklength = unumpy.uarray(flux_tracklength, flux_tracklength_unc) + delta = collision - tracklength + + # Check that difference is within uncertainty + diff = unumpy.nominal_values(delta) + std_dev = unumpy.std_devs(delta) + assert np.all(diff < 3*std_dev) From 620aaec5ee46400f5bde6bc63906deedf031f56d Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 8 Jul 2022 08:09:16 -0500 Subject: [PATCH 115/119] Fix indexing bug in SphericalMesh and CylindricalMesh --- src/mesh.cpp | 14 ++++++-------- .../regression_tests/filter_mesh/results_true.dat | 2 +- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/mesh.cpp b/src/mesh.cpp index de29233fb..e8f79aa37 100644 --- a/src/mesh.cpp +++ b/src/mesh.cpp @@ -379,7 +379,7 @@ void StructuredMesh::raytrace_mesh( // TODO: when c++-17 is available, use "if constexpr ()" to compile-time // enable/disable tally calls for now, T template type needs to provide both // surface and track methods, which might be empty. modern optimizing - // compilers will (hopefully) eleminate the complete code (including + // compilers will (hopefully) eliminate the complete code (including // calculation of parameters) but for the future: be explicit // Compute the length of the entire track. @@ -957,7 +957,7 @@ double CylindricalMesh::find_r_crossing( const Position& r, const Direction& u, double l, int shell) const { - if ((shell < 0) || (shell >= shape_[0])) + if ((shell < 0) || (shell > shape_[0])) return INFTY; // solve r.x^2 + r.y^2 == r0^2 @@ -1190,7 +1190,7 @@ StructuredMesh::MeshIndex SphericalMesh::get_indices( double SphericalMesh::find_r_crossing( const Position& r, const Direction& u, double l, int shell) const { - if ((shell < 0) || (shell >= shape_[0])) + if ((shell < 0) || (shell > shape_[0])) return INFTY; // solve |r+s*u| = r0 @@ -1312,20 +1312,17 @@ StructuredMesh::MeshDistance SphericalMesh::distance_to_grid_boundary( { if (i == 0) { - return std::min( MeshDistance(ijk[i] + 1, true, find_r_crossing(r0, u, l, ijk[i])), MeshDistance(ijk[i] - 1, false, find_r_crossing(r0, u, l, ijk[i] - 1))); } else if (i == 1) { - return std::min(MeshDistance(sanitize_theta(ijk[i] + 1), true, find_theta_crossing(r0, u, l, ijk[i])), MeshDistance(sanitize_theta(ijk[i] - 1), false, find_theta_crossing(r0, u, l, ijk[i] - 1))); } else { - return std::min(MeshDistance(sanitize_phi(ijk[i] + 1), true, find_phi_crossing(r0, u, l, ijk[i])), MeshDistance(sanitize_phi(ijk[i] - 1), false, @@ -2567,8 +2564,9 @@ void read_meshes(pugi::xml_node root) // Check to make sure multiple meshes in the same file don't share IDs int id = std::stoi(get_node_value(node, "id")); if (contains(mesh_ids, id)) { - fatal_error( - fmt::format("Two or more meshes use the same unique ID '{}' in the same input file", id)); + fatal_error(fmt::format( + "Two or more meshes use the same unique ID '{}' in the same input file", + id)); } mesh_ids.insert(id); diff --git a/tests/regression_tests/filter_mesh/results_true.dat b/tests/regression_tests/filter_mesh/results_true.dat index 97735130e..ef52af2c7 100644 --- a/tests/regression_tests/filter_mesh/results_true.dat +++ b/tests/regression_tests/filter_mesh/results_true.dat @@ -1 +1 @@ -6e02d01fc115c54e4c60477a9f963149bc83c82e6a7bdb2d29125b131546150c59de5ac3aae5b9469b89b343ecf2574f6c949b918ccb43231e8666ee2b7c1b7c \ No newline at end of file +70243ebdb882e4367bf821667a9f4d41dea03eaf8b27d734e014a13e14922b5158cd47b0a7edf3733d4e23ca6a5ab06457220c9138b7e9720acf547f2eaa06e2 \ No newline at end of file From 7e890037051dad5760ea5f010165017b864f389f Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Fri, 8 Jul 2022 23:44:32 +0100 Subject: [PATCH 116/119] [skip ci] Apply suggestions from code review by @paulromano Co-authored-by: Paul Romano --- openmc/material.py | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/openmc/material.py b/openmc/material.py index 352959fe9..3592a35e6 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -3,7 +3,6 @@ from collections.abc import Iterable from copy import deepcopy from numbers import Real from pathlib import Path - import os import math import re @@ -345,7 +344,7 @@ class Material(IDManagerMixin): raise ValueError('No volume information found for material ID={}.' .format(self.id)) - def set_density(self, units: str, density:Optional[float]=None): + def set_density(self, units: str, density: Optional[float] = None): """Set the density of the material Parameters @@ -377,7 +376,7 @@ class Material(IDManagerMixin): density, Real) self._density = density - def add_nuclide(self, nuclide: str, percent: float, percent_type: str='ao'): + def add_nuclide(self, nuclide: str, percent: float, percent_type: str = 'ao'): """Add a nuclide to the material Parameters @@ -505,10 +504,10 @@ class Material(IDManagerMixin): if macroscopic == self._macroscopic: self._macroscopic = None - def add_element(self, element: str, percent: float, percent_type: str='ao', - enrichment: Optional[float]=None, - enrichment_target: Optional[str]=None, - enrichment_type: Optional[str]=None): + def add_element(self, element: str, percent: float, percent_type: str = 'ao', + enrichment: Optional[float] = None, + enrichment_target: Optional[str] = None, + enrichment_type: Optional[str] = None): """Add a natural element to the material Parameters @@ -613,10 +612,10 @@ class Material(IDManagerMixin): enrichment_type): self.add_nuclide(*nuclide) - def add_elements_from_formula(self, formula: str, percent_type: str='ao', - enrichment: Optional[float]=None, - enrichment_target: Optional[float]=None, - enrichment_type: Optional[str]=None): + def add_elements_from_formula(self, formula: str, percent_type: str = 'ao', + enrichment: Optional[float] = None, + enrichment_target: Optional[str] = None, + enrichment_type: Optional[str] = None): """Add a elements from a chemical formula to the material. .. versionadded:: 0.12 @@ -713,7 +712,7 @@ class Material(IDManagerMixin): else: self.add_element(element, percent, percent_type) - def add_s_alpha_beta(self, name: str, fraction: float=1.0): + def add_s_alpha_beta(self, name: str, fraction: float = 1.0): r"""Add an :math:`S(\alpha,\beta)` table to the material Parameters @@ -862,7 +861,7 @@ class Material(IDManagerMixin): return nuclides - def get_mass_density(self, nuclide: Optional[str]=None): + def get_mass_density(self, nuclide: Optional[str] = None): """Return mass density of one or all nuclides Parameters @@ -885,7 +884,7 @@ class Material(IDManagerMixin): mass_density += density_i return mass_density - def get_mass(self, nuclide: Optional[str]=None): + def get_mass(self, nuclide: Optional[str] = None): """Return mass of one or all nuclides. Note that this method requires that the :attr:`Material.volume` has @@ -907,7 +906,7 @@ class Material(IDManagerMixin): raise ValueError("Volume must be set in order to determine mass.") return self.volume*self.get_mass_density(nuclide) - def clone(self, memo: Optional[dict]=None): + def clone(self, memo: Optional[dict] = None): """Create a copy of this material with a new unique ID. Parameters @@ -1031,7 +1030,7 @@ class Material(IDManagerMixin): @classmethod def mix_materials(cls, materials, fracs: typing.Iterable[float], - percent_type: str='ao', name: Optional[str]=None): + percent_type: str = 'ao', name: Optional[str] = None): """Mix materials together based on atom, weight, or volume fractions .. versionadded:: 0.12 @@ -1260,7 +1259,7 @@ class Materials(cv.CheckedList): for material in self: material.make_isotropic_in_lab() - def export_to_xml(self, path: Union[str, os.PathLike]='materials.xml'): + def export_to_xml(self, path: Union[str, os.PathLike] = 'materials.xml'): """Export material collection to an XML file. Parameters @@ -1307,7 +1306,7 @@ class Materials(cv.CheckedList): fh.write('\n') @classmethod - def from_xml(cls, path: Union[str, os.PathLike]='materials.xml'): + def from_xml(cls, path: Union[str, os.PathLike] = 'materials.xml'): """Generate materials collection from XML file Parameters From 69cb024882bd1d711c88370504833931a365424d Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Fri, 8 Jul 2022 23:52:27 +0100 Subject: [PATCH 117/119] Adding type hint h5py.Group --- openmc/material.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openmc/material.py b/openmc/material.py index 3592a35e6..dcb33ff29 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -11,6 +11,7 @@ import warnings from typing import Optional, Union from xml.etree import ElementTree as ET +import h5py import numpy as np import openmc @@ -270,7 +271,7 @@ class Material(IDManagerMixin): return density*self.volume @classmethod - def from_hdf5(cls, group: str): + def from_hdf5(cls, group: h5py.Group): """Create material from HDF5 group Parameters From 0fe895e195c8bfe916910f3219fcff6eec643d75 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Mon, 11 Jul 2022 12:29:10 +0000 Subject: [PATCH 118/119] Fixed number of dimensions in vtk file --- openmc/mesh.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/mesh.py b/openmc/mesh.py index d5a460baa..1fe5429d0 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -240,7 +240,7 @@ class StructuredMesh(MeshBase): vtk_grid = vtk.vtkStructuredGrid() - vtk_grid.SetDimensions(*self.dimension) + vtk_grid.SetDimensions(*[dim + 1 for dim in self.dimension]) vtkPts = vtk.vtkPoints() vtkPts.SetData(nps.numpy_to_vtk(points, deep=True)) From ef452850bee91c7dc0d5a6ba2272c64e69ded873 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 11 Jul 2022 10:28:06 -0500 Subject: [PATCH 119/119] Don't skip CI for non-code files (reverting changes from #2010) --- .github/workflows/ci.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 670b76cd9..050c8e287 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,13 +5,6 @@ on: workflow_dispatch: pull_request: - paths-ignore: - - 'docs/**' - - 'examples/**' - - 'man/**' - - '**.md' - - CODEOWNERS - - LICENSE branches: - develop - master