mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-28 06:05:58 -04:00
Took advantage of p % wgt already incorporating the multiplicity if the multiplicity is provided as a function of E by just using p % wgt for nu_scatter tallies instead of p % last_wgt * multiplicity
This commit is contained in:
parent
e30c609b81
commit
643f9aaccb
1 changed files with 27 additions and 22 deletions
|
|
@ -62,7 +62,6 @@ contains
|
|||
real(8) :: uvw(3) ! particle direction
|
||||
type(Material), pointer :: mat
|
||||
type(Reaction), pointer :: rxn
|
||||
real(8) :: multiplicity
|
||||
|
||||
i = 0
|
||||
SCORE_LOOP: do q = 1, t % n_user_score_bins
|
||||
|
|
@ -177,7 +176,9 @@ contains
|
|||
! neutrons exiting a reaction with neutrons in the exit channel
|
||||
if (p % event_MT == ELASTIC .or. p % event_MT == N_LEVEL .or. &
|
||||
(p % event_MT >= N_N1 .and. p % event_MT <= N_NC)) then
|
||||
multiplicity = ONE
|
||||
! Don't waste time on very common reactions we know have multiplicities
|
||||
! of one.
|
||||
score = p % last_wgt
|
||||
else
|
||||
do m = 1, nuclides(p % event_nuclide) % n_reaction
|
||||
! Check if this is the desired MT
|
||||
|
|
@ -188,17 +189,17 @@ contains
|
|||
end if
|
||||
end do
|
||||
|
||||
! Get multiplicity
|
||||
! Get multiplicity and apply to score
|
||||
if (rxn % multiplicity_with_E) then
|
||||
multiplicity = interpolate_tab1(rxn % multiplicity_E, p % last_E)
|
||||
! Then the multiplicity was already incorporated in to p % wgt
|
||||
! per the scattering routine,
|
||||
score = p % wgt
|
||||
else
|
||||
multiplicity = real(rxn % multiplicity,8)
|
||||
! Grab the multiplicity from the rxn
|
||||
score = p % last_wgt * real(rxn % multiplicity,8)
|
||||
end if
|
||||
end if
|
||||
|
||||
! Apply multiplicity to the last weight
|
||||
score = p % last_wgt * multiplicity
|
||||
|
||||
|
||||
case (SCORE_NU_SCATTER_PN)
|
||||
! Only analog estimators are available.
|
||||
|
|
@ -212,7 +213,9 @@ contains
|
|||
! neutrons exiting a reaction with neutrons in the exit channel
|
||||
if (p % event_MT == ELASTIC .or. p % event_MT == N_LEVEL .or. &
|
||||
(p % event_MT >= N_N1 .and. p % event_MT <= N_NC)) then
|
||||
multiplicity = ONE
|
||||
! Don't waste time on very common reactions we know have multiplicities
|
||||
! of one.
|
||||
score = p % last_wgt
|
||||
else
|
||||
do m = 1, nuclides(p % event_nuclide) % n_reaction
|
||||
! Check if this is the desired MT
|
||||
|
|
@ -223,17 +226,17 @@ contains
|
|||
end if
|
||||
end do
|
||||
|
||||
! Get multiplicity
|
||||
! Get multiplicity and apply to score
|
||||
if (rxn % multiplicity_with_E) then
|
||||
multiplicity = interpolate_tab1(rxn % multiplicity_E, p % last_E)
|
||||
! Then the multiplicity was already incorporated in to p % wgt
|
||||
! per the scattering routine,
|
||||
score = p % wgt
|
||||
else
|
||||
multiplicity = real(rxn % multiplicity,8)
|
||||
! Grab the multiplicity from the rxn
|
||||
score = p % last_wgt * real(rxn % multiplicity,8)
|
||||
end if
|
||||
end if
|
||||
|
||||
! Apply multiplicity to the last weight
|
||||
score = p % last_wgt * multiplicity
|
||||
|
||||
|
||||
case (SCORE_NU_SCATTER_YN)
|
||||
! Only analog estimators are available.
|
||||
|
|
@ -247,7 +250,9 @@ contains
|
|||
! neutrons exiting a reaction with neutrons in the exit channel
|
||||
if (p % event_MT == ELASTIC .or. p % event_MT == N_LEVEL .or. &
|
||||
(p % event_MT >= N_N1 .and. p % event_MT <= N_NC)) then
|
||||
multiplicity = ONE
|
||||
! Don't waste time on very common reactions we know have multiplicities
|
||||
! of one.
|
||||
score = p % last_wgt
|
||||
else
|
||||
do m = 1, nuclides(p % event_nuclide) % n_reaction
|
||||
! Check if this is the desired MT
|
||||
|
|
@ -258,17 +263,17 @@ contains
|
|||
end if
|
||||
end do
|
||||
|
||||
! Get multiplicity
|
||||
! Get multiplicity and apply to score
|
||||
if (rxn % multiplicity_with_E) then
|
||||
multiplicity = interpolate_tab1(rxn % multiplicity_E, p % last_E)
|
||||
! Then the multiplicity was already incorporated in to p % wgt
|
||||
! per the scattering routine,
|
||||
score = p % wgt
|
||||
else
|
||||
multiplicity = real(rxn % multiplicity,8)
|
||||
! Grab the multiplicity from the rxn
|
||||
score = p % last_wgt * real(rxn % multiplicity,8)
|
||||
end if
|
||||
end if
|
||||
|
||||
! Apply multiplicity to the last weight
|
||||
score = p % last_wgt * multiplicity
|
||||
|
||||
|
||||
case (SCORE_TRANSPORT)
|
||||
! Only analog estimators are available.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue