mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-28 22:26:08 -04:00
Merge pull request #718 from samuelshaner/decay-rates
Delayed neutron precursor decay rate tally
This commit is contained in:
commit
4f95b4a7f6
22 changed files with 820 additions and 230 deletions
|
|
@ -42,7 +42,7 @@ install: true
|
|||
|
||||
before_script:
|
||||
- if [[ ! -e $HOME/nndc_hdf5/cross_sections.xml ]]; then
|
||||
wget https://anl.box.com/shared/static/68b2yhu8e6mx1f6hnbzz9mxsgg42d9ls.xz -O - | tar -C $HOME -xvJ;
|
||||
wget https://anl.box.com/shared/static/fouwc8lh9he2wc97kzq65u4rp8zt9sgq.xz -O - | tar -C $HOME -xvJ;
|
||||
fi
|
||||
- export OPENMC_CROSS_SECTIONS=$HOME/nndc_hdf5/cross_sections.xml
|
||||
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -298,6 +298,7 @@ Multi-delayed-group Cross Sections
|
|||
openmc.mgxs.ChiDelayed
|
||||
openmc.mgxs.DelayedNuFissionXS
|
||||
openmc.mgxs.Beta
|
||||
openmc.mgxs.DecayRate
|
||||
|
||||
Multi-group Cross Section Libraries
|
||||
-----------------------------------
|
||||
|
|
|
|||
|
|
@ -1890,6 +1890,11 @@ The ``<tally>`` element accepts the following sub-elements:
|
|||
| |deposited locally. Units are MeV per source |
|
||||
| |paticle. |
|
||||
+----------------------+---------------------------------------------------+
|
||||
|decay-rate |The delayed-nu-fission-weighted decay rate where |
|
||||
| |the decay rate is in units of inverse seconds. |
|
||||
| |This score type is not used in the |
|
||||
| |multi-group :ref:`energy_mode`. |
|
||||
+----------------------+---------------------------------------------------+
|
||||
|
||||
.. note::
|
||||
The ``analog`` estimator is actually identical to the ``collision``
|
||||
|
|
|
|||
|
|
@ -478,7 +478,7 @@ class IncidentNeutron(EqualityMixin):
|
|||
if len(rxs) > 0:
|
||||
data.summed_reactions[mt_sum] = rx = Reaction(mt_sum)
|
||||
for T in data.temperatures:
|
||||
rx.xs[T] = Sum([rx.xs[T] for rx in rxs])
|
||||
rx.xs[T] = Sum([rx_i.xs[T] for rx_i in rxs])
|
||||
|
||||
# Read unresolved resonance probability tables
|
||||
if 'urr' in group:
|
||||
|
|
|
|||
|
|
@ -107,7 +107,9 @@ def _get_fission_products(ace):
|
|||
for group in range(n_group):
|
||||
delayed_neutron = Product('neutron')
|
||||
delayed_neutron.emission_mode = 'delayed'
|
||||
delayed_neutron.decay_rate = ace.xss[idx]
|
||||
|
||||
# Convert units of inverse shakes to inverse seconds
|
||||
delayed_neutron.decay_rate = ace.xss[idx] * 1.e8
|
||||
|
||||
group_probability = Tabulated1D.from_ace(ace, idx + 1)
|
||||
if np.all(group_probability.y == group_probability.y[0]):
|
||||
|
|
|
|||
|
|
@ -20,7 +20,8 @@ if sys.version_info[0] >= 3:
|
|||
# Supported cross section types
|
||||
MDGXS_TYPES = ['delayed-nu-fission',
|
||||
'chi-delayed',
|
||||
'beta']
|
||||
'beta',
|
||||
'decay-rate']
|
||||
|
||||
# Maximum number of delayed groups, from src/constants.F90
|
||||
MAX_DELAYED_GROUPS = 8
|
||||
|
|
@ -213,7 +214,7 @@ class MDGXS(MGXS):
|
|||
|
||||
Parameters
|
||||
----------
|
||||
mdgxs_type : {'delayed-nu-fission', 'chi-delayed', 'beta'}
|
||||
mdgxs_type : {'delayed-nu-fission', 'chi-delayed', 'beta', 'decay-rate'}
|
||||
The type of multi-delayed-group cross section object to return
|
||||
domain : openmc.Material or openmc.Cell or openmc.Universe or
|
||||
openmc.Mesh
|
||||
|
|
@ -249,6 +250,8 @@ class MDGXS(MGXS):
|
|||
delayed_groups)
|
||||
elif mdgxs_type == 'beta':
|
||||
mdgxs = Beta(domain, domain_type, energy_groups, delayed_groups)
|
||||
elif mdgxs_type == 'decay-rate':
|
||||
mdgxs = DecayRate(domain, domain_type, energy_groups, delayed_groups)
|
||||
|
||||
mdgxs.by_nuclide = by_nuclide
|
||||
mdgxs.name = name
|
||||
|
|
@ -1574,3 +1577,155 @@ class Beta(MDGXS):
|
|||
super(Beta, self)._compute_xs()
|
||||
|
||||
return self._xs_tally
|
||||
|
||||
|
||||
class DecayRate(MDGXS):
|
||||
r"""The decay rate for delayed neutron precursors.
|
||||
|
||||
This class can be used for both OpenMC input generation and tally data
|
||||
post-processing to compute spatially-homogenized and energy-integrated
|
||||
multi-group and multi-delayed group cross sections for multi-group
|
||||
neutronics calculations. At a minimum, one needs to set the
|
||||
:attr:`DecayRate.energy_groups` and :attr:`DecayRate.domain` properties.
|
||||
Tallies for the flux and appropriate reaction rates over the specified
|
||||
domain are generated automatically via the :attr:`DecayRate.tallies`
|
||||
property, which can then be appended to a :class:`openmc.Tallies` instance.
|
||||
|
||||
For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the
|
||||
necessary data to compute multi-group cross sections from a
|
||||
:class:`openmc.StatePoint` instance. The derived multi-group cross section
|
||||
can then be obtained from the :attr:`DecayRate.xs_tally` property.
|
||||
|
||||
For a spatial domain :math:`V`, energy group :math:`[E_g,E_{g-1}]`, and
|
||||
delayed group :math:`d`, the decay rate is calculated as:
|
||||
|
||||
.. math::
|
||||
|
||||
\langle \lambda_d \nu^d \sigma_f \phi \rangle &= \int_{r \in V} dr
|
||||
\int_{4\pi} d\Omega' \int_0^\infty dE' \int_0^\infty dE \; \lambda_d \nu^d
|
||||
\sigma_f (r, E') \psi(r, E', \Omega') \\
|
||||
\langle \nu^d \sigma_f \phi \rangle &= \int_{r \in V} dr \int_{4\pi}
|
||||
d\Omega' \int_0^\infty dE' \int_0^\infty dE \; \chi(E) \nu^d
|
||||
\sigma_f (r, E') \psi(r, E', \Omega') \\
|
||||
\lambda_d &= \frac{\langle \lambda_d \nu^d \sigma_f \phi \rangle}
|
||||
{\langle \nu^d \sigma_f \phi \rangle}
|
||||
|
||||
Parameters
|
||||
----------
|
||||
domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh
|
||||
The domain for spatial homogenization
|
||||
domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'}
|
||||
The domain type for spatial homogenization
|
||||
groups : openmc.mgxs.EnergyGroups
|
||||
The energy group structure for energy condensation
|
||||
by_nuclide : bool
|
||||
If true, computes cross sections for each nuclide in domain
|
||||
name : str, optional
|
||||
Name of the multi-group cross section. Used as a label to identify
|
||||
tallies in OpenMC 'tallies.xml' file.
|
||||
delayed_groups : list of int
|
||||
Delayed groups to filter out the xs
|
||||
|
||||
Attributes
|
||||
----------
|
||||
name : str, optional
|
||||
Name of the multi-group cross section
|
||||
rxn_type : str
|
||||
Reaction type (e.g., 'total', 'nu-fission', etc.)
|
||||
by_nuclide : bool
|
||||
If true, computes cross sections for each nuclide in domain
|
||||
domain : Material or Cell or Universe or Mesh
|
||||
Domain for spatial homogenization
|
||||
domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'}
|
||||
Domain type for spatial homogenization
|
||||
energy_groups : openmc.mgxs.EnergyGroups
|
||||
Energy group structure for energy condensation
|
||||
delayed_groups : list of int
|
||||
Delayed groups to filter out the xs
|
||||
tally_trigger : openmc.Trigger
|
||||
An (optional) tally precision trigger given to each tally used to
|
||||
compute the cross section
|
||||
scores : list of str
|
||||
The scores in each tally used to compute the multi-group cross section
|
||||
filters : list of openmc.Filter
|
||||
The filters in each tally used to compute the multi-group cross section
|
||||
tally_keys : list of str
|
||||
The keys into the tallies dictionary for each tally used to compute
|
||||
the multi-group cross section
|
||||
estimator : {'tracklength', 'analog'}
|
||||
The tally estimator used to compute the multi-group cross section
|
||||
tallies : collections.OrderedDict
|
||||
OpenMC tallies needed to compute the multi-group cross section. The keys
|
||||
are strings listed in the :attr:`DecayRate.tally_keys` property and
|
||||
values are instances of :class:`openmc.Tally`.
|
||||
rxn_rate_tally : openmc.Tally
|
||||
Derived tally for the reaction rate tally used in the numerator to
|
||||
compute the multi-group cross section. This attribute is None
|
||||
unless the multi-group cross section has been computed.
|
||||
xs_tally : openmc.Tally
|
||||
Derived tally for the multi-group cross section. This attribute
|
||||
is None unless the multi-group cross section has been computed.
|
||||
num_subdomains : int
|
||||
The number of subdomains is unity for 'material', 'cell' and 'universe'
|
||||
domain types. When the This is equal to the number of cell instances
|
||||
for 'distribcell' domain types (it is equal to unity prior to loading
|
||||
tally data from a statepoint file).
|
||||
num_nuclides : int
|
||||
The number of nuclides for which the multi-group cross section is
|
||||
being tracked. This is unity if the by_nuclide attribute is False.
|
||||
nuclides : Iterable of str or 'sum'
|
||||
The optional user-specified nuclides for which to compute cross
|
||||
sections (e.g., 'U-238', 'O-16'). If by_nuclide is True but nuclides
|
||||
are not specified by the user, all nuclides in the spatial domain
|
||||
are included. This attribute is 'sum' if by_nuclide is false.
|
||||
sparse : bool
|
||||
Whether or not the MGXS' tallies use SciPy's LIL sparse matrix format
|
||||
for compressed data storage
|
||||
loaded_sp : bool
|
||||
Whether or not a statepoint file has been loaded with tally data
|
||||
derived : bool
|
||||
Whether or not the MGXS is merged from one or more other MGXS
|
||||
hdf5_key : str
|
||||
The key used to index multi-group cross sections in an HDF5 data store
|
||||
|
||||
"""
|
||||
|
||||
def __init__(self, domain=None, domain_type=None, energy_groups=None,
|
||||
delayed_groups=None, by_nuclide=False, name=''):
|
||||
super(DecayRate, self).__init__(domain, domain_type, energy_groups,
|
||||
delayed_groups, by_nuclide, name)
|
||||
self._rxn_type = 'decay-rate'
|
||||
self._estimator = 'analog'
|
||||
|
||||
@property
|
||||
def scores(self):
|
||||
return ['delayed-nu-fission', 'decay-rate']
|
||||
|
||||
@property
|
||||
def tally_keys(self):
|
||||
return ['delayed-nu-fission', 'decay-rate']
|
||||
|
||||
@property
|
||||
def filters(self):
|
||||
|
||||
# Create the non-domain specific Filters for the Tallies
|
||||
group_edges = self.energy_groups.group_edges
|
||||
energy_filter = openmc.Filter('energy', group_edges)
|
||||
|
||||
if self.delayed_groups != None:
|
||||
delayed_filter = openmc.Filter('delayedgroup', self.delayed_groups)
|
||||
return [[delayed_filter, energy_filter], [delayed_filter, energy_filter]]
|
||||
else:
|
||||
return [[energy_filter], [energy_filter]]
|
||||
|
||||
@property
|
||||
def xs_tally(self):
|
||||
|
||||
if self._xs_tally is None:
|
||||
delayed_nu_fission = self.tallies['delayed-nu-fission']
|
||||
|
||||
# Compute the decay rate
|
||||
self._xs_tally = self.rxn_rate_tally / delayed_nu_fission
|
||||
super(DecayRate, self)._compute_xs()
|
||||
|
||||
return self._xs_tally
|
||||
|
|
|
|||
|
|
@ -296,7 +296,7 @@ module constants
|
|||
EVENT_ABSORB = 2
|
||||
|
||||
! Tally score type
|
||||
integer, parameter :: N_SCORE_TYPES = 23
|
||||
integer, parameter :: N_SCORE_TYPES = 24
|
||||
integer, parameter :: &
|
||||
SCORE_FLUX = -1, & ! flux
|
||||
SCORE_TOTAL = -2, & ! total reaction rate
|
||||
|
|
@ -320,7 +320,8 @@ module constants
|
|||
SCORE_PROMPT_NU_FISSION = -20, & ! prompt neutron production rate
|
||||
SCORE_INVERSE_VELOCITY = -21, & ! flux-weighted inverse velocity
|
||||
SCORE_FISS_Q_PROMPT = -22, & ! prompt fission Q-value
|
||||
SCORE_FISS_Q_RECOV = -23 ! recoverable fission Q-value
|
||||
SCORE_FISS_Q_RECOV = -23, & ! recoverable fission Q-value
|
||||
SCORE_DECAY_RATE = -24 ! delayed neutron precursor decay rate
|
||||
|
||||
! Maximum scattering order supported
|
||||
integer, parameter :: MAX_ANG_ORDER = 10
|
||||
|
|
|
|||
|
|
@ -40,6 +40,8 @@ contains
|
|||
string = "fission"
|
||||
case (SCORE_NU_FISSION)
|
||||
string = "nu-fission"
|
||||
case (SCORE_DECAY_RATE)
|
||||
string = "decay-rate"
|
||||
case (SCORE_DELAYED_NU_FISSION)
|
||||
string = "delayed-nu-fission"
|
||||
case (SCORE_PROMPT_NU_FISSION)
|
||||
|
|
|
|||
|
|
@ -3230,22 +3230,6 @@ contains
|
|||
|
||||
! Check if total material was specified
|
||||
if (trim(sarray(j)) == 'total') then
|
||||
|
||||
! Check if a delayedgroup filter is present for this tally
|
||||
do l = 1, size(t % filters)
|
||||
select type(filt => t % filters(l) % obj)
|
||||
type is (DelayedGroupFilter)
|
||||
call warning("A delayedgroup filter was used on a total &
|
||||
&nuclide tally. Cross section libraries are not &
|
||||
&guaranteed to have the same delayed group structure &
|
||||
&across all isotopes. In particular, ENDF/B-VII.1 does &
|
||||
¬ have a consistent delayed group structure across &
|
||||
&all isotopes while the JEFF 3.1.1 library has the same &
|
||||
&delayed group structure across all isotopes. Use with &
|
||||
&caution!")
|
||||
end select
|
||||
end do
|
||||
|
||||
t % nuclide_bins(j) = -1
|
||||
cycle
|
||||
end if
|
||||
|
|
@ -3290,20 +3274,6 @@ contains
|
|||
allocate(t % nuclide_bins(1))
|
||||
t % nuclide_bins(1) = -1
|
||||
t % n_nuclide_bins = 1
|
||||
|
||||
! Check if a delayedgroup filter is present for this tally
|
||||
do l = 1, size(t % filters)
|
||||
select type(filt => t % filters(l) % obj)
|
||||
type is (DelayedGroupFilter)
|
||||
call warning("A delayedgroup filter was used on a total nuclide &
|
||||
&tally. Cross section libraries are not guaranteed to have the&
|
||||
& same delayed group structure across all isotopes. In &
|
||||
&particular, ENDF/B-VII.1 does not have a consistent delayed &
|
||||
&group structure across all isotopes while the JEFF 3.1.1 &
|
||||
&library has the same delayed group structure across all &
|
||||
&isotopes. Use with caution!")
|
||||
end select
|
||||
end do
|
||||
end if
|
||||
|
||||
! =======================================================================
|
||||
|
|
@ -3417,8 +3387,9 @@ contains
|
|||
end if
|
||||
|
||||
! Check if delayed group filter is used with any score besides
|
||||
! delayed-nu-fission
|
||||
if (score_name /= 'delayed-nu-fission' .and. &
|
||||
! delayed-nu-fission or decay-rate
|
||||
if ((score_name /= 'delayed-nu-fission' .and. &
|
||||
score_name /= 'decay-rate') .and. &
|
||||
t % find_filter(FILTER_DELAYEDGROUP) > 0) then
|
||||
call fatal_error("Cannot tally " // trim(score_name) // " with a &
|
||||
&delayedgroup filter.")
|
||||
|
|
@ -3572,6 +3543,9 @@ contains
|
|||
! Set tally estimator to analog
|
||||
t % estimator = ESTIMATOR_ANALOG
|
||||
end if
|
||||
case ('decay-rate')
|
||||
t % score_bins(j) = SCORE_DECAY_RATE
|
||||
t % estimator = ESTIMATOR_ANALOG
|
||||
case ('delayed-nu-fission')
|
||||
t % score_bins(j) = SCORE_DELAYED_NU_FISSION
|
||||
if (t % find_filter(FILTER_ENERGYOUT) > 0) then
|
||||
|
|
|
|||
|
|
@ -735,6 +735,7 @@ contains
|
|||
score_names(abs(SCORE_NU_SCATTER_N)) = "Scattering Prod. Rate Moment"
|
||||
score_names(abs(SCORE_NU_SCATTER_PN)) = "Scattering Prod. Rate Moment"
|
||||
score_names(abs(SCORE_NU_SCATTER_YN)) = "Scattering Prod. Rate Moment"
|
||||
score_names(abs(SCORE_DECAY_RATE)) = "Decay Rate"
|
||||
score_names(abs(SCORE_DELAYED_NU_FISSION)) = "Delayed-Nu-Fission Rate"
|
||||
score_names(abs(SCORE_PROMPT_NU_FISSION)) = "Prompt-Nu-Fission Rate"
|
||||
score_names(abs(SCORE_INVERSE_VELOCITY)) = "Flux-Weighted Inverse Velocity"
|
||||
|
|
|
|||
137
src/tally.F90
137
src/tally.F90
|
|
@ -94,6 +94,8 @@ contains
|
|||
integer :: score_bin ! scoring bin, e.g. SCORE_FLUX
|
||||
integer :: score_index ! scoring bin index
|
||||
integer :: d ! delayed neutron index
|
||||
integer :: g ! delayed neutron index
|
||||
integer :: k ! loop index for bank sites
|
||||
integer :: d_bin ! delayed group bin index
|
||||
integer :: dg_filter ! index of delayed group filter
|
||||
real(8) :: yield ! delayed neutron yield
|
||||
|
|
@ -671,6 +673,141 @@ contains
|
|||
end if
|
||||
|
||||
|
||||
case (SCORE_DECAY_RATE)
|
||||
|
||||
! Set the delayedgroup filter index
|
||||
dg_filter = t % find_filter(FILTER_DELAYEDGROUP)
|
||||
|
||||
if (survival_biasing) then
|
||||
! No fission events occur if survival biasing is on -- need to
|
||||
! calculate fraction of absorptions that would have resulted in
|
||||
! delayed-nu-fission
|
||||
if (micro_xs(p % event_nuclide) % absorption > ZERO .and. &
|
||||
nuclides(p % event_nuclide) % fissionable) then
|
||||
|
||||
! Check if the delayed group filter is present
|
||||
if (dg_filter > 0) then
|
||||
select type(filt => t % filters(dg_filter) % obj)
|
||||
type is (DelayedGroupFilter)
|
||||
|
||||
! Loop over all delayed group bins and tally to them
|
||||
! individually
|
||||
do d_bin = 1, filt % n_bins
|
||||
|
||||
! Get the delayed group for this bin
|
||||
d = filt % groups(d_bin)
|
||||
|
||||
! Compute the yield for this delayed group
|
||||
yield = nuclides(p % event_nuclide) &
|
||||
% nu(E, EMISSION_DELAYED, d)
|
||||
|
||||
associate (rxn => nuclides(p % event_nuclide) % &
|
||||
reactions(nuclides(p % event_nuclide) % index_fission(1)))
|
||||
|
||||
! Compute the score
|
||||
score = p % absorb_wgt * yield * &
|
||||
micro_xs(p % event_nuclide) % fission &
|
||||
/ micro_xs(p % event_nuclide) % absorption &
|
||||
* rxn % products(1 + d) % decay_rate
|
||||
end associate
|
||||
|
||||
! Tally to bin
|
||||
call score_fission_delayed_dg(t, d_bin, score, score_index)
|
||||
end do
|
||||
cycle SCORE_LOOP
|
||||
end select
|
||||
else
|
||||
|
||||
! If the delayed group filter is not present, compute the score
|
||||
! by accumulating the absorbed weight times the decay rate times
|
||||
! the fraction of the delayed-nu-fission xs to the absorption xs
|
||||
! for all delayed groups.
|
||||
score = ZERO
|
||||
|
||||
associate (rxn => nuclides(p % event_nuclide) % &
|
||||
reactions(nuclides(p % event_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
|
||||
! array to be exceeded. Hence, we use the size of this array
|
||||
! and not the MAX_DELAYED_GROUPS constant for this loop.
|
||||
do d = 1, size(rxn % products) - 2
|
||||
|
||||
score = score + rxn % products(1 + d) % decay_rate * &
|
||||
p % absorb_wgt * micro_xs(p % event_nuclide) % fission *&
|
||||
nuclides(p % event_nuclide) % nu(E, EMISSION_DELAYED, d)&
|
||||
/ micro_xs(p % event_nuclide) % absorption
|
||||
end do
|
||||
end associate
|
||||
end if
|
||||
end if
|
||||
else
|
||||
|
||||
! Skip any non-fission events
|
||||
if (.not. p % fission) cycle SCORE_LOOP
|
||||
! If there is no outgoing energy filter, than we only need to
|
||||
! score to one bin. For the score to be 'analog', we need to
|
||||
! score the number of particles that were banked in the fission
|
||||
! bank. Since this was weighted by 1/keff, we multiply by keff
|
||||
! to get the proper score. Loop over the neutrons produced from
|
||||
! fission and check which ones are delayed. If a delayed neutron is
|
||||
! encountered, add its contribution to the fission bank to the
|
||||
! score.
|
||||
|
||||
score = ZERO
|
||||
|
||||
! loop over number of particles banked
|
||||
do k = 1, p % n_bank
|
||||
|
||||
! get the delayed group
|
||||
g = fission_bank(n_bank - p % n_bank + k) % delayed_group
|
||||
|
||||
! Case for tallying delayed emissions
|
||||
if (g /= 0) then
|
||||
|
||||
! Accumulate the decay rate times delayed nu fission score
|
||||
associate (rxn => nuclides(p % event_nuclide) % &
|
||||
reactions(nuclides(p % event_nuclide) % index_fission(1)))
|
||||
|
||||
! determine score based on bank site weight and keff.
|
||||
score = score + keff * fission_bank(n_bank - p % n_bank + k) &
|
||||
% wgt * rxn % products(1 + g) % decay_rate
|
||||
end associate
|
||||
|
||||
! if the delayed group filter is present, tally to corresponding
|
||||
! delayed group bin if it exists
|
||||
if (dg_filter > 0) then
|
||||
|
||||
! declare the delayed group filter type
|
||||
select type(filt => t % filters(dg_filter) % obj)
|
||||
type is (DelayedGroupFilter)
|
||||
|
||||
! loop over delayed group bins until the corresponding bin is
|
||||
! found
|
||||
do d_bin = 1, filt % n_bins
|
||||
d = filt % groups(d_bin)
|
||||
|
||||
! check whether the delayed group of the particle is equal to
|
||||
! the delayed group of this bin
|
||||
if (d == g) then
|
||||
call score_fission_delayed_dg(t, d_bin, score, score_index)
|
||||
end if
|
||||
end do
|
||||
end select
|
||||
|
||||
! Reset the score to zero
|
||||
score = ZERO
|
||||
end if
|
||||
end if
|
||||
end do
|
||||
|
||||
! If the delayed group filter is present, cycle because the
|
||||
! score_fission_delayed_dg(...) has already tallied the score
|
||||
if (dg_filter > 0) then
|
||||
cycle SCORE_LOOP
|
||||
end if
|
||||
end if
|
||||
|
||||
case (SCORE_KAPPA_FISSION)
|
||||
! Determine kappa-fission cross section on the fly. The ENDF standard
|
||||
! (ENDF-102) states that MT 18 stores the fission energy as the Q_value
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
2b2a2f5778b03f87d20fa6da96cc19db0489f69d4d5f0cac02dd407fd8e53a082081bfef35c4310cb2e0651254766d499e89279e711fd6fd93f913c964855839
|
||||
723ce48152faa9ec1576c26a825dfa45cdd858e721bd698d72d559ac3b9e5c37e5048305bd9af9c3137a781798ab2eee20e5df46455bfd9d6819a08fd2bff47d
|
||||
|
|
@ -61,6 +61,13 @@
|
|||
3 10000 4 1 total 0.002752 0.000240
|
||||
4 10000 5 1 total 0.001231 0.000105
|
||||
5 10000 6 1 total 0.000512 0.000044
|
||||
material delayedgroup group in nuclide mean std. dev.
|
||||
0 10000 1 1 total 0.000000 0.000000
|
||||
1 10000 2 1 total 0.032739 0.028454
|
||||
2 10000 3 1 total 0.120780 0.170809
|
||||
3 10000 4 1 total 0.302780 0.109110
|
||||
4 10000 5 1 total 0.000000 0.000000
|
||||
5 10000 6 1 total 0.000000 0.000000
|
||||
material group in nuclide mean std. dev.
|
||||
0 10001 1 total 0.311594 0.013793
|
||||
material group in nuclide mean std. dev.
|
||||
|
|
@ -123,6 +130,13 @@
|
|||
2 10001 3 1 total 0.0 0.0
|
||||
3 10001 4 1 total 0.0 0.0
|
||||
4 10001 5 1 total 0.0 0.0
|
||||
5 10001 6 1 total 0.0 0.0
|
||||
material delayedgroup group in nuclide mean std. dev.
|
||||
0 10001 1 1 total 0.0 0.0
|
||||
1 10001 2 1 total 0.0 0.0
|
||||
2 10001 3 1 total 0.0 0.0
|
||||
3 10001 4 1 total 0.0 0.0
|
||||
4 10001 5 1 total 0.0 0.0
|
||||
5 10001 6 1 total 0.0 0.0
|
||||
material group in nuclide mean std. dev.
|
||||
0 10002 1 total 0.904999 0.043964
|
||||
|
|
@ -186,4 +200,11 @@
|
|||
2 10002 3 1 total 0.0 0.0
|
||||
3 10002 4 1 total 0.0 0.0
|
||||
4 10002 5 1 total 0.0 0.0
|
||||
5 10002 6 1 total 0.0 0.0
|
||||
material delayedgroup group in nuclide mean std. dev.
|
||||
0 10002 1 1 total 0.0 0.0
|
||||
1 10002 2 1 total 0.0 0.0
|
||||
2 10002 3 1 total 0.0 0.0
|
||||
3 10002 4 1 total 0.0 0.0
|
||||
4 10002 5 1 total 0.0 0.0
|
||||
5 10002 6 1 total 0.0 0.0
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
ad427594bd8a68ad35382bc34b5932e7c78480b6e327caf63782d563fd6e6e5fb4e7b0dfd9094394a5db092f789c473dbb08cb6b3d0c0296edcfc247dbe95d6f
|
||||
7d95d5cf3f4d1f3277d1a1bbc638b47888d7eb1e6afeedea73140ae5caeebead7c5f1a2945f2a18b49ce75adbd9df17773390530fee129d981a3af50141fe116
|
||||
|
|
@ -61,3 +61,10 @@
|
|||
3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 4 1 total 0.002727 0.000135
|
||||
4 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 5 1 total 0.001210 0.000058
|
||||
5 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 6 1 total 0.000504 0.000024
|
||||
avg(distribcell) delayedgroup group in nuclide mean std. dev.
|
||||
0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total 0.000000 0.000000
|
||||
1 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 2 1 total 0.032739 0.046300
|
||||
2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 3 1 total 0.120780 0.170809
|
||||
3 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 4 1 total 0.000000 0.000000
|
||||
4 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 5 1 total 0.000000 0.000000
|
||||
5 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 6 1 total 2.853000 4.034751
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
2b2a2f5778b03f87d20fa6da96cc19db0489f69d4d5f0cac02dd407fd8e53a082081bfef35c4310cb2e0651254766d499e89279e711fd6fd93f913c964855839
|
||||
723ce48152faa9ec1576c26a825dfa45cdd858e721bd698d72d559ac3b9e5c37e5048305bd9af9c3137a781798ab2eee20e5df46455bfd9d6819a08fd2bff47d
|
||||
|
|
@ -111,6 +111,19 @@ domain=10000 type=beta
|
|||
[ 3.21434855e-04 1.09939816e-03]
|
||||
[ 1.82980497e-04 4.50738567e-04]
|
||||
[ 7.48899920e-05 1.88812772e-04]]
|
||||
domain=10000 type=decay-rate
|
||||
[[ 0. 0. ]
|
||||
[ 0. 0.032739]
|
||||
[ 0. 0.12078 ]
|
||||
[ 0. 0.30278 ]
|
||||
[ 0. 0. ]
|
||||
[ 0. 0. ]]
|
||||
[[ 0. 0. ]
|
||||
[ 0. 0.02845437]
|
||||
[ 0. 0.17080871]
|
||||
[ 0. 0.10910951]
|
||||
[ 0. 0. ]
|
||||
[ 0. 0. ]]
|
||||
domain=10001 type=total
|
||||
[ 0.31373767 0.3008214 ]
|
||||
[ 0.0155819 0.02805245]
|
||||
|
|
@ -212,6 +225,19 @@ domain=10001 type=chi-delayed
|
|||
[ 0. 0.]
|
||||
[ 0. 0.]]
|
||||
domain=10001 type=beta
|
||||
[[ 0. 0.]
|
||||
[ 0. 0.]
|
||||
[ 0. 0.]
|
||||
[ 0. 0.]
|
||||
[ 0. 0.]
|
||||
[ 0. 0.]]
|
||||
[[ 0. 0.]
|
||||
[ 0. 0.]
|
||||
[ 0. 0.]
|
||||
[ 0. 0.]
|
||||
[ 0. 0.]
|
||||
[ 0. 0.]]
|
||||
domain=10001 type=decay-rate
|
||||
[[ 0. 0.]
|
||||
[ 0. 0.]
|
||||
[ 0. 0.]
|
||||
|
|
@ -337,3 +363,16 @@ domain=10002 type=beta
|
|||
[ 0. 0.]
|
||||
[ 0. 0.]
|
||||
[ 0. 0.]]
|
||||
domain=10002 type=decay-rate
|
||||
[[ 0. 0.]
|
||||
[ 0. 0.]
|
||||
[ 0. 0.]
|
||||
[ 0. 0.]
|
||||
[ 0. 0.]
|
||||
[ 0. 0.]]
|
||||
[[ 0. 0.]
|
||||
[ 0. 0.]
|
||||
[ 0. 0.]
|
||||
[ 0. 0.]
|
||||
[ 0. 0.]
|
||||
[ 0. 0.]]
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
68c7695d7ae0367c59155eab05d3fe859cae895170f2cd32d4463af340a9a2035be16221b1eda8e2a1132bfe1b8163ca8d964fb1b23274c232fb10fd88274aea
|
||||
88b1a1b52bcae466bab63038d03e9b2fb9f2a28aac3d73573ca00d5f0c116aa9e1c97341215b80266e8317a0549f11d9adcb8726c82fcc1741a5a730e10c8186
|
||||
|
|
@ -208,3 +208,29 @@
|
|||
21 2 2 1 4 1 total 0.002143 0.001028
|
||||
22 2 2 1 5 1 total 0.001026 0.000492
|
||||
23 2 2 1 6 1 total 0.000408 0.000196
|
||||
mesh 1 delayedgroup group in nuclide mean std. dev.
|
||||
x y z
|
||||
0 1 1 1 1 1 total 0.00000 0.000000
|
||||
1 1 1 1 2 1 total 0.00000 0.000000
|
||||
2 1 1 1 3 1 total 0.00000 0.000000
|
||||
3 1 1 1 4 1 total 0.30278 0.428196
|
||||
4 1 1 1 5 1 total 0.00000 0.000000
|
||||
5 1 1 1 6 1 total 0.00000 0.000000
|
||||
6 1 2 1 1 1 total 0.00000 0.000000
|
||||
7 1 2 1 2 1 total 0.00000 0.000000
|
||||
8 1 2 1 3 1 total 0.00000 0.000000
|
||||
9 1 2 1 4 1 total 0.00000 0.000000
|
||||
10 1 2 1 5 1 total 0.00000 0.000000
|
||||
11 1 2 1 6 1 total 0.00000 0.000000
|
||||
12 2 1 1 1 1 total 0.00000 0.000000
|
||||
13 2 1 1 2 1 total 0.00000 0.000000
|
||||
14 2 1 1 3 1 total 0.00000 0.000000
|
||||
15 2 1 1 4 1 total 0.00000 0.000000
|
||||
16 2 1 1 5 1 total 0.00000 0.000000
|
||||
17 2 1 1 6 1 total 0.00000 0.000000
|
||||
18 2 2 1 1 1 total 0.00000 0.000000
|
||||
19 2 2 1 2 1 total 0.00000 0.000000
|
||||
20 2 2 1 3 1 total 0.00000 0.000000
|
||||
21 2 2 1 4 1 total 0.00000 0.000000
|
||||
22 2 2 1 5 1 total 0.00000 0.000000
|
||||
23 2 2 1 6 1 total 0.00000 0.000000
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
2b2a2f5778b03f87d20fa6da96cc19db0489f69d4d5f0cac02dd407fd8e53a082081bfef35c4310cb2e0651254766d499e89279e711fd6fd93f913c964855839
|
||||
723ce48152faa9ec1576c26a825dfa45cdd858e721bd698d72d559ac3b9e5c37e5048305bd9af9c3137a781798ab2eee20e5df46455bfd9d6819a08fd2bff47d
|
||||
|
|
@ -123,6 +123,19 @@
|
|||
6 10000 4 2 total 0.011426 0.001099
|
||||
8 10000 5 2 total 0.004684 0.000451
|
||||
10 10000 6 2 total 0.001962 0.000189
|
||||
material delayedgroup group in nuclide mean std. dev.
|
||||
1 10000 1 1 total 0.000000 0.000000
|
||||
3 10000 2 1 total 0.000000 0.000000
|
||||
5 10000 3 1 total 0.000000 0.000000
|
||||
7 10000 4 1 total 0.000000 0.000000
|
||||
9 10000 5 1 total 0.000000 0.000000
|
||||
11 10000 6 1 total 0.000000 0.000000
|
||||
0 10000 1 2 total 0.000000 0.000000
|
||||
2 10000 2 2 total 0.032739 0.028454
|
||||
4 10000 3 2 total 0.120780 0.170809
|
||||
6 10000 4 2 total 0.302780 0.109110
|
||||
8 10000 5 2 total 0.000000 0.000000
|
||||
10 10000 6 2 total 0.000000 0.000000
|
||||
material group in nuclide mean std. dev.
|
||||
1 10001 1 total 0.313738 0.015582
|
||||
0 10001 2 total 0.300821 0.028052
|
||||
|
|
@ -247,6 +260,19 @@
|
|||
4 10001 3 2 total 0.0 0.0
|
||||
6 10001 4 2 total 0.0 0.0
|
||||
8 10001 5 2 total 0.0 0.0
|
||||
10 10001 6 2 total 0.0 0.0
|
||||
material delayedgroup group in nuclide mean std. dev.
|
||||
1 10001 1 1 total 0.0 0.0
|
||||
3 10001 2 1 total 0.0 0.0
|
||||
5 10001 3 1 total 0.0 0.0
|
||||
7 10001 4 1 total 0.0 0.0
|
||||
9 10001 5 1 total 0.0 0.0
|
||||
11 10001 6 1 total 0.0 0.0
|
||||
0 10001 1 2 total 0.0 0.0
|
||||
2 10001 2 2 total 0.0 0.0
|
||||
4 10001 3 2 total 0.0 0.0
|
||||
6 10001 4 2 total 0.0 0.0
|
||||
8 10001 5 2 total 0.0 0.0
|
||||
10 10001 6 2 total 0.0 0.0
|
||||
material group in nuclide mean std. dev.
|
||||
1 10002 1 total 0.664572 0.031215
|
||||
|
|
@ -372,4 +398,17 @@
|
|||
4 10002 3 2 total 0.0 0.0
|
||||
6 10002 4 2 total 0.0 0.0
|
||||
8 10002 5 2 total 0.0 0.0
|
||||
10 10002 6 2 total 0.0 0.0
|
||||
material delayedgroup group in nuclide mean std. dev.
|
||||
1 10002 1 1 total 0.0 0.0
|
||||
3 10002 2 1 total 0.0 0.0
|
||||
5 10002 3 1 total 0.0 0.0
|
||||
7 10002 4 1 total 0.0 0.0
|
||||
9 10002 5 1 total 0.0 0.0
|
||||
11 10002 6 1 total 0.0 0.0
|
||||
0 10002 1 2 total 0.0 0.0
|
||||
2 10002 2 2 total 0.0 0.0
|
||||
4 10002 3 2 total 0.0 0.0
|
||||
6 10002 4 2 total 0.0 0.0
|
||||
8 10002 5 2 total 0.0 0.0
|
||||
10 10002 6 2 total 0.0 0.0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue