From 5f571a5eafb545ac8e48668d902a391b93c8f358 Mon Sep 17 00:00:00 2001 From: liangjg Date: Tue, 5 Feb 2019 21:02:26 -0500 Subject: [PATCH 1/8] fix bug when loading nuclides using capi: invalid index updating --- src/nuclide_header.F90 | 8 +++----- tests/unit_tests/test_capi.py | 1 + 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 78d436bddb..4308bc487b 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -703,15 +703,13 @@ contains end function openmc_nuclide_name subroutine extend_nuclides() bind(C) - integer :: n type(Nuclide), allocatable :: new_nuclides(:) ! allocate extra space in nuclides array - n = n_nuclides - allocate(new_nuclides(n + 1)) - new_nuclides(1:n) = nuclides(:) + allocate(new_nuclides(n_nuclides + 1)) + new_nuclides(1:n_nuclides) = nuclides(:) call move_alloc(FROM=new_nuclides, TO=nuclides) - n = n + 1 + n_nuclides = n_nuclides + 1 end subroutine end module nuclide_header diff --git a/tests/unit_tests/test_capi.py b/tests/unit_tests/test_capi.py index f5185e23fa..420cffc4fc 100644 --- a/tests/unit_tests/test_capi.py +++ b/tests/unit_tests/test_capi.py @@ -131,6 +131,7 @@ def test_nuclide_mapping(capi_init): def test_load_nuclide(capi_init): + openmc.capi.load_nuclide('H3') openmc.capi.load_nuclide('Pu239') with pytest.raises(exc.DataError): openmc.capi.load_nuclide('Pu3') From 0459632e185cdddfeda1e59d0647a2f356c78ef5 Mon Sep 17 00:00:00 2001 From: Jingang Liang Date: Wed, 6 Feb 2019 12:59:29 -0800 Subject: [PATCH 2/8] update test_capi.py --- tests/unit_tests/test_capi.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/unit_tests/test_capi.py b/tests/unit_tests/test_capi.py index 420cffc4fc..e69d15a270 100644 --- a/tests/unit_tests/test_capi.py +++ b/tests/unit_tests/test_capi.py @@ -130,13 +130,6 @@ def test_nuclide_mapping(capi_init): assert name == nuc.name -def test_load_nuclide(capi_init): - openmc.capi.load_nuclide('H3') - openmc.capi.load_nuclide('Pu239') - with pytest.raises(exc.DataError): - openmc.capi.load_nuclide('Pu3') - - def test_settings(capi_init): settings = openmc.capi.settings assert settings.batches == 10 @@ -394,3 +387,10 @@ def test_restart(capi_init): # Compare the keff values. assert keff0 == pytest.approx(keff1) + + +def test_load_nuclide(capi_init): + openmc.capi.load_nuclide('H3') + openmc.capi.load_nuclide('Pu239') + with pytest.raises(exc.DataError): + openmc.capi.load_nuclide('Pu3') From a2a08f20b70cd7f8badc6c7ca2c61419054944d3 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Wed, 6 Feb 2019 16:08:29 -0500 Subject: [PATCH 3/8] Fix two SCORE_DECAY_RATE bugs Bug 1: the wrong nuclide index was used resulting in a segfault Bug 2: two branches in the tally logic did not use the correct nu value --- src/tallies/tally.F90 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/tallies/tally.F90 b/src/tallies/tally.F90 index 20087eab7a..9038d1dd8e 100644 --- a/src/tallies/tally.F90 +++ b/src/tallies/tally.F90 @@ -772,8 +772,8 @@ contains ! for all delayed groups. score = ZERO - associate (rxn => nuclides(p % event_nuclide) % & - reactions(nuclides(p % event_nuclide) % index_fission(1))) + associate (rxn => nuclides(i_nuclide) % & + reactions(nuclides(i_nuclide) % index_fission(1))) ! We need to be careful not to overshoot the number of delayed ! groups since this could cause the range of the rxn % products @@ -781,7 +781,7 @@ contains ! and not the MAX_DELAYED_GROUPS constant for this loop. do d = 1, rxn % products_size() - 2 score = score + micro_xs(i_nuclide) % fission * flux * & - nuclides(i_nuclide) % nu(E, EMISSION_DELAYED) * & + nuclides(i_nuclide) % nu(E, EMISSION_DELAYED, d) * & atom_density * rxn % product_decay_rate(1 + d) end do end associate @@ -864,7 +864,7 @@ contains ! Accumulate the contribution from each nuclide score = score + micro_xs(i_nuc) % fission & - * nuclides(i_nuc) % nu(E, EMISSION_DELAYED) & + * nuclides(i_nuc) % nu(E, EMISSION_DELAYED, d) & * atom_density_ * flux & * rxn % product_decay_rate(1 + d) end do From 4b60230935ea2ac5b23b32d344405bf622f0f9ed Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Thu, 7 Feb 2019 10:22:00 -0500 Subject: [PATCH 4/8] Avoid decay-rate segfault with non-fissionable nuc --- src/tallies/tally.F90 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/tallies/tally.F90 b/src/tallies/tally.F90 index 9038d1dd8e..fd123c8729 100644 --- a/src/tallies/tally.F90 +++ b/src/tallies/tally.F90 @@ -736,6 +736,9 @@ contains ! Check if tally is on a single nuclide if (i_nuclide > 0) then + ! Ignore non-fissionable nuclides + if (.not. nuclides(i_nuclide) % fissionable) cycle SCORE_LOOP + ! Check if the delayed group filter is present if (dg_filter > 0) then select type(filt => filters(t % filter(dg_filter)) % obj) From e5f1215b70faf21e181f4ec6e494a67c5e3ae1ca Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Thu, 7 Feb 2019 10:41:36 -0500 Subject: [PATCH 5/8] Increase test_tallies coverage --- .../regression_tests/tallies/inputs_true.dat | 53 ++++++++++--------- .../regression_tests/tallies/results_true.dat | 2 +- tests/regression_tests/tallies/test.py | 25 ++++----- 3 files changed, 37 insertions(+), 43 deletions(-) diff --git a/tests/regression_tests/tallies/inputs_true.dat b/tests/regression_tests/tallies/inputs_true.dat index 6e7b5f3f02..80f55b0341 100644 --- a/tests/regression_tests/tallies/inputs_true.dat +++ b/tests/regression_tests/tallies/inputs_true.dat @@ -377,7 +377,8 @@ 4 - delayed-nu-fission + U235 O16 total + delayed-nu-fission decay-rate 5 @@ -440,50 +441,50 @@ 13 - absorption delayed-nu-fission events fission inverse-velocity kappa-fission (n,2n) (n,n1) (n,gamma) nu-fission scatter elastic total prompt-nu-fission fission-q-prompt fission-q-recoverable + absorption delayed-nu-fission events fission inverse-velocity kappa-fission (n,2n) (n,n1) (n,gamma) nu-fission scatter elastic total prompt-nu-fission fission-q-prompt fission-q-recoverable decay-rate tracklength 13 - absorption delayed-nu-fission events fission inverse-velocity kappa-fission (n,2n) (n,n1) (n,gamma) nu-fission scatter elastic total prompt-nu-fission fission-q-prompt fission-q-recoverable - analog + U235 O16 total + absorption delayed-nu-fission events fission inverse-velocity kappa-fission (n,2n) (n,n1) (n,gamma) nu-fission scatter elastic total prompt-nu-fission fission-q-prompt fission-q-recoverable decay-rate + tracklength 13 - absorption delayed-nu-fission events fission inverse-velocity kappa-fission (n,2n) (n,n1) (n,gamma) nu-fission scatter elastic total prompt-nu-fission fission-q-prompt fission-q-recoverable - collision - - - 14 - flux - tracklength - - - 14 - flux + absorption delayed-nu-fission events fission inverse-velocity kappa-fission (n,2n) (n,n1) (n,gamma) nu-fission scatter elastic total prompt-nu-fission fission-q-prompt fission-q-recoverable decay-rate analog + + 13 + U235 O16 total + absorption delayed-nu-fission events fission inverse-velocity kappa-fission (n,2n) (n,n1) (n,gamma) nu-fission scatter elastic total prompt-nu-fission fission-q-prompt fission-q-recoverable decay-rate + analog + + + 13 + absorption delayed-nu-fission events fission inverse-velocity kappa-fission (n,2n) (n,n1) (n,gamma) nu-fission scatter elastic total prompt-nu-fission fission-q-prompt fission-q-recoverable decay-rate + collision + - 14 - flux + 13 + U235 O16 total + absorption delayed-nu-fission events fission inverse-velocity kappa-fission (n,2n) (n,n1) (n,gamma) nu-fission scatter elastic total prompt-nu-fission fission-q-prompt fission-q-recoverable decay-rate collision - 13 - U235 total - total + 14 + flux tracklength - 13 - U235 total - total + 14 + flux analog - 13 - U235 total - total + 14 + flux collision diff --git a/tests/regression_tests/tallies/results_true.dat b/tests/regression_tests/tallies/results_true.dat index c245bc8a15..08a3ba1103 100644 --- a/tests/regression_tests/tallies/results_true.dat +++ b/tests/regression_tests/tallies/results_true.dat @@ -1 +1 @@ -aa7f79718620c122e3a13bfa0e200a41b642b09a5d10a6e43e1584181b0314fbeb73c165fe55ddd34c1e9546e381019dd8e3889ca7d99bfe1ab489631bec15d1 \ No newline at end of file +b5edf87cb58db29aa1c38203141df2f055b88aca675aee9673879b579391412abd232cb3d404f60840ac86b936384050576cccb1e3a1fc5c8290b6e890dda74c \ No newline at end of file diff --git a/tests/regression_tests/tallies/test.py b/tests/regression_tests/tallies/test.py index 601b611f49..eeb74636fe 100644 --- a/tests/regression_tests/tallies/test.py +++ b/tests/regression_tests/tallies/test.py @@ -47,7 +47,8 @@ def test_tallies(): dg_tally = Tally() dg_tally.filters = [DelayedGroupFilter((1, 2, 3, 4, 5, 6))] - dg_tally.scores = ['delayed-nu-fission'] + dg_tally.scores = ['delayed-nu-fission', 'decay-rate'] + dg_tally.nuclides = ['U235', 'O16', 'total'] four_groups = (0.0, 0.253, 1.0e3, 1.0e6, 20.0e6) energy_filter = EnergyFilter(four_groups) @@ -130,17 +131,19 @@ def test_tallies(): cell_filter = CellFilter((model.geometry.get_all_cells()[10], model.geometry.get_all_cells()[21], 22, 23, 60)) # Test both Cell objects and ids - score_tallies = [Tally(), Tally(), Tally()] + score_tallies = [Tally() for i in range(6)] for t in score_tallies: t.filters = [cell_filter] t.scores = ['absorption', 'delayed-nu-fission', 'events', 'fission', 'inverse-velocity', 'kappa-fission', '(n,2n)', '(n,n1)', '(n,gamma)', 'nu-fission', 'scatter', 'elastic', 'total', 'prompt-nu-fission', 'fission-q-prompt', - 'fission-q-recoverable'] - score_tallies[0].estimator = 'tracklength' - score_tallies[1].estimator = 'analog' - score_tallies[2].estimator = 'collision' + 'fission-q-recoverable', 'decay-rate'] + for t in score_tallies[0:2]: t.estimator = 'tracklength' + for t in score_tallies[2:4]: t.estimator = 'analog' + for t in score_tallies[4:6]: t.estimator = 'collision' + for t in score_tallies[1::2]: + t.nuclides = ['U235', 'O16', 'total'] cell_filter2 = CellFilter((21, 22, 23, 27, 28, 29, 60)) flux_tallies = [Tally() for i in range(3)] @@ -151,15 +154,6 @@ def test_tallies(): flux_tallies[1].estimator = 'analog' flux_tallies[2].estimator = 'collision' - total_tallies = [Tally() for i in range(3)] - for t in total_tallies: - t.filters = [cell_filter] - t.scores = ['total'] - t.nuclides = ['U235', 'total'] - total_tallies[0].estimator = 'tracklength' - total_tallies[1].estimator = 'analog' - total_tallies[2].estimator = 'collision' - all_nuclide_tallies = [Tally() for i in range(4)] for t in all_nuclide_tallies: t.filters = [cell_filter] @@ -179,7 +173,6 @@ def test_tallies(): harmonics_tally, harmonics_tally2, harmonics_tally3, universe_tally] model.tallies += score_tallies model.tallies += flux_tallies - model.tallies += total_tallies model.tallies += all_nuclide_tallies harness.main() From 3ff2410dfa4f6dc4aec210a65ca253029c5c0b6a Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Thu, 7 Feb 2019 13:13:43 -0500 Subject: [PATCH 6/8] Fix MG mode delayed nu-fission indexing bug --- include/openmc/xsdata.h | 2 +- src/mgxs.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/openmc/xsdata.h b/include/openmc/xsdata.h index a629d786af..a8aed5d17c 100644 --- a/include/openmc/xsdata.h +++ b/include/openmc/xsdata.h @@ -77,7 +77,7 @@ class XsData { // [angle][delayed group] xt::xtensor decay_rate; // delayed_nu_fission has the following dimensions: - // [angle][incoming group][delayed group] + // [angle][delayed group][incoming group] xt::xtensor delayed_nu_fission; // chi_prompt has the following dimensions: // [angle][incoming group][outgoing group] diff --git a/src/mgxs.cpp b/src/mgxs.cpp index 43554f5735..08c4f78941 100644 --- a/src/mgxs.cpp +++ b/src/mgxs.cpp @@ -467,7 +467,7 @@ Mgxs::get_xs(int xstype, int gin, int* gout, double* mu, int* dg) val = xs_t->delayed_nu_fission(a, *dg, gin); } else { val = 0.; - for (int d = 0; d < xs_t->delayed_nu_fission.shape()[2]; d++) { + for (int d = 0; d < xs_t->delayed_nu_fission.shape()[1]; d++) { val += xs_t->delayed_nu_fission(a, d, gin); } } From 66e2d1f63c70fa67cef435583a6d4ab360ffcf4a Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Thu, 7 Feb 2019 23:48:54 -0500 Subject: [PATCH 7/8] Fix MG mode bugs for inverse-vel and decay tallies --- src/tallies/tally.F90 | 8 ++++---- src/xsdata.cpp | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/tallies/tally.F90 b/src/tallies/tally.F90 index 20087eab7a..ad94000e99 100644 --- a/src/tallies/tally.F90 +++ b/src/tallies/tally.F90 @@ -1349,11 +1349,11 @@ contains if (i_nuclide > 0) then score = score * flux * get_nuclide_xs_c(i_nuclide, & MG_GET_XS_INVERSE_VELOCITY, p_g) / & - get_macro_xs_c(p % material, MG_GET_XS_ABSORPTION, p_g) + get_macro_xs_c(p % material, MG_GET_XS_TOTAL, p_g) else score = score * flux * get_macro_xs_c(p % material, & MG_GET_XS_INVERSE_VELOCITY, p_g) / & - get_macro_xs_c(p % material, MG_GET_XS_ABSORPTION, p_g) + get_macro_xs_c(p % material, MG_GET_XS_TOTAL, p_g) end if else @@ -1843,13 +1843,13 @@ contains if (i_nuclide > 0) then score = score + keff * atom_density * & fission_bank_wgt(n_bank - p % n_bank + k) * & - get_nuclide_xs_c(i_nuclide, MG_GET_XS_DECAY_RATE, p_g, DG=d) * & + get_nuclide_xs_c(i_nuclide, MG_GET_XS_DECAY_RATE, p_g, DG=g) * & get_nuclide_xs_c(i_nuclide, MG_GET_XS_FISSION, p_g) / & get_macro_xs_c(p % material, MG_GET_XS_FISSION, p_g) * flux else score = score + keff * & fission_bank_wgt(n_bank - p % n_bank + k) * & - get_macro_xs_c(p % material, MG_GET_XS_DECAY_RATE, p_g, DG=d) * flux + get_macro_xs_c(p % material, MG_GET_XS_DECAY_RATE, p_g, DG=g) * flux end if ! if the delayed group filter is present, tally to corresponding diff --git a/src/xsdata.cpp b/src/xsdata.cpp index 347793e5b7..cee36a938b 100644 --- a/src/xsdata.cpp +++ b/src/xsdata.cpp @@ -92,7 +92,7 @@ XsData::from_hdf5(hid_t xsdata_grp, bool fissionable, int scatter_format, fission_from_hdf5(xsdata_grp, n_ang, is_isotropic); } // Get the non-fission-specific data - read_nd_vector(xsdata_grp, "decay_rate", decay_rate); + read_nd_vector(xsdata_grp, "decay rate", decay_rate); read_nd_vector(xsdata_grp, "absorption", absorption, true); read_nd_vector(xsdata_grp, "inverse-velocity", inverse_velocity); From 7578378368f0426a872c7eece0dad7b269a1818d Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Thu, 7 Feb 2019 23:51:46 -0500 Subject: [PATCH 8/8] Increase MG mode tallies test coverage --- .../mg_tallies/inputs_true.dat | 32 ++++++------- .../mg_tallies/results_true.dat | 2 +- tests/regression_tests/mg_tallies/test.py | 47 ++++++++++++------- 3 files changed, 48 insertions(+), 33 deletions(-) diff --git a/tests/regression_tests/mg_tallies/inputs_true.dat b/tests/regression_tests/mg_tallies/inputs_true.dat index a9b821c56e..b75573b0a7 100644 --- a/tests/regression_tests/mg_tallies/inputs_true.dat +++ b/tests/regression_tests/mg_tallies/inputs_true.dat @@ -58,27 +58,27 @@ 5 - total absorption flux fission nu-fission + total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate flux analog 5 - total absorption flux fission nu-fission + total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate flux tracklength 6 1 - total absorption flux fission nu-fission scatter nu-scatter + total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate flux scatter nu-scatter analog 6 1 - total absorption flux fission nu-fission + total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate flux collision 6 1 - total absorption flux fission nu-fission + total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate flux tracklength @@ -87,17 +87,17 @@ 6 3 - total absorption flux fission nu-fission scatter nu-scatter + total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate flux scatter nu-scatter analog 6 3 - total absorption flux fission nu-fission + total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate flux collision 6 3 - total absorption flux fission nu-fission + total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate flux tracklength @@ -107,31 +107,31 @@ 5 mat_1 - total absorption fission nu-fission + total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate analog 5 mat_1 - total absorption fission nu-fission + total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate tracklength 6 1 mat_1 - total absorption fission nu-fission scatter nu-scatter + total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate scatter nu-scatter analog 6 1 mat_1 - total absorption fission nu-fission + total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate collision 6 1 mat_1 - total absorption fission nu-fission + total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate tracklength @@ -142,19 +142,19 @@ 6 3 mat_1 - total absorption fission nu-fission scatter nu-scatter + total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate scatter nu-scatter analog 6 3 mat_1 - total absorption fission nu-fission + total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate collision 6 3 mat_1 - total absorption fission nu-fission + total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate tracklength diff --git a/tests/regression_tests/mg_tallies/results_true.dat b/tests/regression_tests/mg_tallies/results_true.dat index 78a5883fed..bc2393f73c 100644 --- a/tests/regression_tests/mg_tallies/results_true.dat +++ b/tests/regression_tests/mg_tallies/results_true.dat @@ -1 +1 @@ -41ea1f6b17c58a8141921af2f1d044eda93f3a9bca9463ee023af2e9865da613ace90fc8a25b42edde128ed827182ea9df0fe09d9b7887282d0ec092692cf717 \ No newline at end of file +15e00a46742e973d7c3c5defe427e6f76a4f1b661538cf54957712751410218dc64301fe12ccb8dbed3f2d51d19b3e99d2b615a3e98c46f9954894e96667dc23 \ No newline at end of file diff --git a/tests/regression_tests/mg_tallies/test.py b/tests/regression_tests/mg_tallies/test.py index 26d53c230a..b0a8987108 100644 --- a/tests/regression_tests/mg_tallies/test.py +++ b/tests/regression_tests/mg_tallies/test.py @@ -12,26 +12,37 @@ def create_library(): # Instantiate the energy group data and file object groups = openmc.mgxs.EnergyGroups(group_edges=[0.0, 0.625, 20.0e6]) - mg_cross_sections_file = openmc.MGXSLibrary(groups) + mg_cross_sections_file = openmc.MGXSLibrary(groups, 6) # Make the base, isotropic data - nu = [2.50, 2.50] + nu = np.array([2.50, 2.50]) fiss = np.array([0.002817, 0.097]) - capture = [0.008708, 0.02518] - absorption = np.add(capture, fiss) + capture = np.array([0.008708, 0.02518]) + absorption = capture + fiss scatter = np.array( [[[0.31980, 0.06694], [0.004555, -0.0003972]], [[0.00000, 0.00000], [0.424100, 0.05439000]]]) - total = [0.33588, 0.54628] - chi = [1., 0.] + total = np.array([0.33588, 0.54628]) + chi = np.array([1., 0.]) + decay_rate = np.array([0.013336, 0.032739, 0.12078, 0.30278, 0.84949, + 2.853]) + delayed_yield = np.array([0.00055487, 0.00286407, 0.00273429, 0.0061305, + 0.00251342, 0.00105286]) + inv_vel = 1.0 / np.array([1.4e9, 4.4e5]) - mat_1 = openmc.XSdata('mat_1', groups) + + mat_1 = openmc.XSdata('mat_1', groups, num_delayed_groups=6) mat_1.order = 1 - mat_1.set_nu_fission(np.multiply(nu, fiss)) + mat_1.set_fission(fiss) + mat_1.set_kappa_fission(fiss * 200e6) + mat_1.set_nu_fission(nu * fiss) + mat_1.set_beta(delayed_yield / 2.5) + mat_1.set_decay_rate(decay_rate) mat_1.set_absorption(absorption) mat_1.set_scatter_matrix(scatter) mat_1.set_total(total) mat_1.set_chi(chi) + mat_1.set_inverse_velocity(inv_vel) mg_cross_sections_file.add_xsdata(mat_1) # Write the file @@ -69,14 +80,18 @@ def test_mg_tallies(): nuclides = model.xs_data - scores = {False: ['total', 'absorption', 'flux', 'fission', 'nu-fission'], - True: ['total', 'absorption', 'fission', 'nu-fission']} + scores_with_nuclides = [ + 'total', 'absorption', 'fission', 'nu-fission', 'inverse-velocity', + 'prompt-nu-fission', 'delayed-nu-fission', 'kappa-fission', 'events', + 'decay-rate'] + scores_without_nuclides = scores_with_nuclides + ['flux'] - for do_nuclides in [False, True]: + for do_nuclides, scores in ((False, scores_without_nuclides), + (True, scores_with_nuclides)): t = openmc.Tally() t.filters = [mesh_filter] t.estimator = 'analog' - t.scores = scores[do_nuclides] + t.scores = scores if do_nuclides: t.nuclides = nuclides model.tallies.append(t) @@ -84,7 +99,7 @@ def test_mg_tallies(): t = openmc.Tally() t.filters = [mesh_filter] t.estimator = 'tracklength' - t.scores = scores[do_nuclides] + t.scores = scores if do_nuclides: t.nuclides = nuclides model.tallies.append(t) @@ -102,7 +117,7 @@ def test_mg_tallies(): t = openmc.Tally() t.filters = [mat_filter, e_filter] t.estimator = 'analog' - t.scores = scores[do_nuclides] + ['scatter', 'nu-scatter'] + t.scores = scores + ['scatter', 'nu-scatter'] if do_nuclides: t.nuclides = nuclides model.tallies.append(t) @@ -110,7 +125,7 @@ def test_mg_tallies(): t = openmc.Tally() t.filters = [mat_filter, e_filter] t.estimator = 'collision' - t.scores = scores[do_nuclides] + t.scores = scores if do_nuclides: t.nuclides = nuclides model.tallies.append(t) @@ -118,7 +133,7 @@ def test_mg_tallies(): t = openmc.Tally() t.filters = [mat_filter, e_filter] t.estimator = 'tracklength' - t.scores = scores[do_nuclides] + t.scores = scores if do_nuclides: t.nuclides = nuclides model.tallies.append(t)