mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-28 14:15:42 -04:00
Merge remote-tracking branch 'upstream/develop' into cpp_tallies
This commit is contained in:
commit
5e476760b9
13 changed files with 107 additions and 101 deletions
|
|
@ -77,7 +77,7 @@ class XsData {
|
|||
// [angle][delayed group]
|
||||
xt::xtensor<double, 2> decay_rate;
|
||||
// delayed_nu_fission has the following dimensions:
|
||||
// [angle][incoming group][delayed group]
|
||||
// [angle][delayed group][incoming group]
|
||||
xt::xtensor<double, 3> delayed_nu_fission;
|
||||
// chi_prompt has the following dimensions:
|
||||
// [angle][incoming group][outgoing group]
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -554,13 +554,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+1, MG_GET_XS_DECAY_RATE, p_g, DG=d) * &
|
||||
get_nuclide_xs_c(i_nuclide+1, MG_GET_XS_DECAY_RATE, p_g, DG=g) * &
|
||||
get_nuclide_xs_c(i_nuclide+1, 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
|
||||
|
|
|
|||
|
|
@ -1337,8 +1337,7 @@ score_general_ce(Particle* p, int i_tally, int start_index, int filter_index,
|
|||
// rxn.products_ array to be exceeded. Hence, we use the size
|
||||
// of this array and not the MAX_DELAYED_GROUPS constant for
|
||||
// this loop.
|
||||
for (auto d = 0; d < rxn.products_.size() - 2; ++d)
|
||||
{
|
||||
for (auto d = 0; d < rxn.products_.size() - 2; ++d) {
|
||||
auto yield
|
||||
= nuc.nu(E, ReactionProduct::EmissionMode::delayed, d+1);
|
||||
auto rate = rxn.products_[d+1].decay_rate_;
|
||||
|
|
@ -1367,7 +1366,7 @@ score_general_ce(Particle* p, int i_tally, int start_index, int filter_index,
|
|||
const auto& nuc {*data::nuclides[p->event_nuclide-1]};
|
||||
const auto& rxn {*nuc.fission_rx_[0]};
|
||||
auto rate = rxn.products_[g].decay_rate_;
|
||||
//score += simulation::keff * bank.wgt * rate * flux;
|
||||
score += simulation::keff * bank.wgt * rate * flux;
|
||||
if (tally.delayedgroup_filter_ > 0) {
|
||||
auto i_dg_filt = tally.filters()[tally.delayedgroup_filter_-1];
|
||||
const DelayedGroupFilter& filt
|
||||
|
|
@ -1388,6 +1387,7 @@ score_general_ce(Particle* p, int i_tally, int start_index, int filter_index,
|
|||
} else {
|
||||
if (i_nuclide >= 0) {
|
||||
const auto& nuc {*data::nuclides[i_nuclide]};
|
||||
if (!nuc.fissionable_) continue;
|
||||
const auto& rxn {*nuc.fission_rx_[0]};
|
||||
if (tally.delayedgroup_filter_ > 0) {
|
||||
auto i_dg_filt = tally.filters()[tally.delayedgroup_filter_-1];
|
||||
|
|
@ -1412,8 +1412,7 @@ score_general_ce(Particle* p, int i_tally, int start_index, int filter_index,
|
|||
// rxn.products_ array to be exceeded. Hence, we use the size
|
||||
// of this array and not the MAX_DELAYED_GROUPS constant for
|
||||
// this loop.
|
||||
for (auto d = 0; d < rxn.products_.size() - 2; ++d)
|
||||
{
|
||||
for (auto d = 0; d < rxn.products_.size() - 2; ++d) {
|
||||
auto yield
|
||||
= nuc.nu(E, ReactionProduct::EmissionMode::delayed, d+1);
|
||||
auto rate = rxn.products_[d+1].decay_rate_;
|
||||
|
|
@ -1465,8 +1464,7 @@ score_general_ce(Particle* p, int i_tally, int start_index, int filter_index,
|
|||
// rxn.products_ array to be exceeded. Hence, we use the size
|
||||
// of this array and not the MAX_DELAYED_GROUPS constant for
|
||||
// this loop.
|
||||
for (auto d = 0; d < rxn.products_.size() - 2; ++d)
|
||||
{
|
||||
for (auto d = 0; d < rxn.products_.size() - 2; ++d) {
|
||||
auto yield
|
||||
= nuc.nu(E, ReactionProduct::EmissionMode::delayed, d+1);
|
||||
auto rate = rxn.products_[d+1].decay_rate_;
|
||||
|
|
@ -1882,11 +1880,11 @@ score_general_mg_c(Particle* p, int i_tally, int start_index, int filter_index,
|
|||
if (i_nuclide >= 0) {
|
||||
score *= flux
|
||||
* get_nuclide_xs(i_nuclide+1, MG_GET_XS_INVERSE_VELOCITY, p_g)
|
||||
/ get_macro_xs(p->material, MG_GET_XS_ABSORPTION, p_g);
|
||||
/ get_macro_xs(p->material, MG_GET_XS_TOTAL, p_g);
|
||||
} else {
|
||||
score *= flux
|
||||
* get_macro_xs(p->material, MG_GET_XS_INVERSE_VELOCITY, p_g)
|
||||
/ get_macro_xs(p->material, MG_GET_XS_ABSORPTION, p_g);
|
||||
/ get_macro_xs(p->material, MG_GET_XS_TOTAL, p_g);
|
||||
}
|
||||
} else {
|
||||
if (i_nuclide >= 0) {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -58,27 +58,27 @@
|
|||
</filter>
|
||||
<tally id="1">
|
||||
<filters>5</filters>
|
||||
<scores>total absorption flux fission nu-fission</scores>
|
||||
<scores>total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate flux</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="2">
|
||||
<filters>5</filters>
|
||||
<scores>total absorption flux fission nu-fission</scores>
|
||||
<scores>total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate flux</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="3">
|
||||
<filters>6 1</filters>
|
||||
<scores>total absorption flux fission nu-fission scatter nu-scatter</scores>
|
||||
<scores>total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate flux scatter nu-scatter</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="4">
|
||||
<filters>6 1</filters>
|
||||
<scores>total absorption flux fission nu-fission</scores>
|
||||
<scores>total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate flux</scores>
|
||||
<estimator>collision</estimator>
|
||||
</tally>
|
||||
<tally id="5">
|
||||
<filters>6 1</filters>
|
||||
<scores>total absorption flux fission nu-fission</scores>
|
||||
<scores>total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate flux</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="6">
|
||||
|
|
@ -87,17 +87,17 @@
|
|||
</tally>
|
||||
<tally id="7">
|
||||
<filters>6 3</filters>
|
||||
<scores>total absorption flux fission nu-fission scatter nu-scatter</scores>
|
||||
<scores>total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate flux scatter nu-scatter</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="8">
|
||||
<filters>6 3</filters>
|
||||
<scores>total absorption flux fission nu-fission</scores>
|
||||
<scores>total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate flux</scores>
|
||||
<estimator>collision</estimator>
|
||||
</tally>
|
||||
<tally id="9">
|
||||
<filters>6 3</filters>
|
||||
<scores>total absorption flux fission nu-fission</scores>
|
||||
<scores>total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate flux</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10">
|
||||
|
|
@ -107,31 +107,31 @@
|
|||
<tally id="11">
|
||||
<filters>5</filters>
|
||||
<nuclides>mat_1</nuclides>
|
||||
<scores>total absorption fission nu-fission</scores>
|
||||
<scores>total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="12">
|
||||
<filters>5</filters>
|
||||
<nuclides>mat_1</nuclides>
|
||||
<scores>total absorption fission nu-fission</scores>
|
||||
<scores>total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="13">
|
||||
<filters>6 1</filters>
|
||||
<nuclides>mat_1</nuclides>
|
||||
<scores>total absorption fission nu-fission scatter nu-scatter</scores>
|
||||
<scores>total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate scatter nu-scatter</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="14">
|
||||
<filters>6 1</filters>
|
||||
<nuclides>mat_1</nuclides>
|
||||
<scores>total absorption fission nu-fission</scores>
|
||||
<scores>total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate</scores>
|
||||
<estimator>collision</estimator>
|
||||
</tally>
|
||||
<tally id="15">
|
||||
<filters>6 1</filters>
|
||||
<nuclides>mat_1</nuclides>
|
||||
<scores>total absorption fission nu-fission</scores>
|
||||
<scores>total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="16">
|
||||
|
|
@ -142,19 +142,19 @@
|
|||
<tally id="17">
|
||||
<filters>6 3</filters>
|
||||
<nuclides>mat_1</nuclides>
|
||||
<scores>total absorption fission nu-fission scatter nu-scatter</scores>
|
||||
<scores>total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate scatter nu-scatter</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="18">
|
||||
<filters>6 3</filters>
|
||||
<nuclides>mat_1</nuclides>
|
||||
<scores>total absorption fission nu-fission</scores>
|
||||
<scores>total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate</scores>
|
||||
<estimator>collision</estimator>
|
||||
</tally>
|
||||
<tally id="19">
|
||||
<filters>6 3</filters>
|
||||
<nuclides>mat_1</nuclides>
|
||||
<scores>total absorption fission nu-fission</scores>
|
||||
<scores>total absorption fission nu-fission inverse-velocity prompt-nu-fission delayed-nu-fission kappa-fission events decay-rate</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="20">
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
41ea1f6b17c58a8141921af2f1d044eda93f3a9bca9463ee023af2e9865da613ace90fc8a25b42edde128ed827182ea9df0fe09d9b7887282d0ec092692cf717
|
||||
15e00a46742e973d7c3c5defe427e6f76a4f1b661538cf54957712751410218dc64301fe12ccb8dbed3f2d51d19b3e99d2b615a3e98c46f9954894e96667dc23
|
||||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -377,7 +377,8 @@
|
|||
</tally>
|
||||
<tally id="5">
|
||||
<filters>4</filters>
|
||||
<scores>delayed-nu-fission</scores>
|
||||
<nuclides>U235 O16 total</nuclides>
|
||||
<scores>delayed-nu-fission decay-rate</scores>
|
||||
</tally>
|
||||
<tally id="6">
|
||||
<filters>5</filters>
|
||||
|
|
@ -440,50 +441,50 @@
|
|||
</tally>
|
||||
<tally id="20">
|
||||
<filters>13</filters>
|
||||
<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</scores>
|
||||
<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 decay-rate</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="21">
|
||||
<filters>13</filters>
|
||||
<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</scores>
|
||||
<estimator>analog</estimator>
|
||||
<nuclides>U235 O16 total</nuclides>
|
||||
<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 decay-rate</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="22">
|
||||
<filters>13</filters>
|
||||
<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</scores>
|
||||
<estimator>collision</estimator>
|
||||
</tally>
|
||||
<tally id="23">
|
||||
<filters>14</filters>
|
||||
<scores>flux</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="24">
|
||||
<filters>14</filters>
|
||||
<scores>flux</scores>
|
||||
<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 decay-rate</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="23">
|
||||
<filters>13</filters>
|
||||
<nuclides>U235 O16 total</nuclides>
|
||||
<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 decay-rate</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="24">
|
||||
<filters>13</filters>
|
||||
<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 decay-rate</scores>
|
||||
<estimator>collision</estimator>
|
||||
</tally>
|
||||
<tally id="25">
|
||||
<filters>14</filters>
|
||||
<scores>flux</scores>
|
||||
<filters>13</filters>
|
||||
<nuclides>U235 O16 total</nuclides>
|
||||
<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 decay-rate</scores>
|
||||
<estimator>collision</estimator>
|
||||
</tally>
|
||||
<tally id="26">
|
||||
<filters>13</filters>
|
||||
<nuclides>U235 total</nuclides>
|
||||
<scores>total</scores>
|
||||
<filters>14</filters>
|
||||
<scores>flux</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="27">
|
||||
<filters>13</filters>
|
||||
<nuclides>U235 total</nuclides>
|
||||
<scores>total</scores>
|
||||
<filters>14</filters>
|
||||
<scores>flux</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="28">
|
||||
<filters>13</filters>
|
||||
<nuclides>U235 total</nuclides>
|
||||
<scores>total</scores>
|
||||
<filters>14</filters>
|
||||
<scores>flux</scores>
|
||||
<estimator>collision</estimator>
|
||||
</tally>
|
||||
<tally id="29">
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
aa7f79718620c122e3a13bfa0e200a41b642b09a5d10a6e43e1584181b0314fbeb73c165fe55ddd34c1e9546e381019dd8e3889ca7d99bfe1ab489631bec15d1
|
||||
b5edf87cb58db29aa1c38203141df2f055b88aca675aee9673879b579391412abd232cb3d404f60840ac86b936384050576cccb1e3a1fc5c8290b6e890dda74c
|
||||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -130,12 +130,6 @@ def test_nuclide_mapping(capi_init):
|
|||
assert name == nuc.name
|
||||
|
||||
|
||||
def test_load_nuclide(capi_init):
|
||||
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 +388,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')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue