mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-26 05:05:30 -04:00
Streamlined URR PRNG stream selection to avoid unneeded store/load ops (#2689)
This commit is contained in:
parent
7505f61b22
commit
f46d3ee37c
2 changed files with 3 additions and 6 deletions
|
|
@ -857,9 +857,8 @@ void Nuclide::calculate_urr_xs(int i_temp, Particle& p) const
|
|||
// This guarantees the randomness and, at the same time, makes sure we
|
||||
// reuse random numbers for the same nuclide at different temperatures,
|
||||
// therefore preserving correlation of temperature in probability tables.
|
||||
p.stream() = STREAM_URR_PTABLE;
|
||||
double r = future_prn(static_cast<int64_t>(index_), *p.current_seed());
|
||||
p.stream() = STREAM_TRACKING;
|
||||
double r =
|
||||
future_prn(static_cast<int64_t>(index_), p.seeds(STREAM_URR_PTABLE));
|
||||
|
||||
// Warning: this assumes row-major order of cdf_values_
|
||||
int i_low = upper_bound_index(&urr.cdf_values_(i_energy, 0),
|
||||
|
|
|
|||
|
|
@ -150,9 +150,7 @@ void sample_neutron_reaction(Particle& p)
|
|||
|
||||
// Advance URR seed stream 'N' times after energy changes
|
||||
if (p.E() != p.E_last()) {
|
||||
p.stream() = STREAM_URR_PTABLE;
|
||||
advance_prn_seed(data::nuclides.size(), p.current_seed());
|
||||
p.stream() = STREAM_TRACKING;
|
||||
advance_prn_seed(data::nuclides.size(), &p.seeds(STREAM_URR_PTABLE));
|
||||
}
|
||||
|
||||
// Play russian roulette if survival biasing is turned on
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue