@@ -666,7 +666,14 @@ double FlatSourceDomain::compute_fixed_source_normalization_factor() const
666666 // such that 1.2 neutrons are generated, so as to be consistent with the
667667 // bookkeeping in MC which is all done per starting source neutron (not per
668668 // neutron produced).
669- return k_eff_ / (fission_rate_ * simulation_volume_);
669+ double normalization_factor;
670+ // For a kinetic simulation, the normalization only needs to be performed
671+ // once for the steady state.
672+ if (settings::kinetic_simulation && !settings::is_initial_condition)
673+ normalization_factor = 1.0 ;
674+ else
675+ normalization_factor = k_eff_ / (fission_rate_ * simulation_volume_);
676+ return normalization_factor;
670677 // TODO: check if a delayed fission rate needed to normalize the precursor
671678 // population... need to run a test problem using mc tallies?
672679 }
@@ -835,7 +842,7 @@ void FlatSourceDomain::random_ray_tally()
835842 for (int dg = 0 ; dg < ndgroups_; dg++) {
836843 // Determine numerical score value
837844 for (auto & task : source_regions_.tally_delay_task (sr, dg)) {
838- double score;
845+ double score = 0.0 ;
839846 switch (task.score_type ) {
840847
841848 // Certain scores already tallied
@@ -847,10 +854,6 @@ void FlatSourceDomain::random_ray_tally()
847854 break ;
848855
849856 case SCORE_PRECURSORS:
850- // TODO: This will be slightly off. The source normalization factor
851- // should only be applied to the delayed fission source, but here we
852- // apply it to entire precursor concentration (sum of delayed
853- // fission source and precursor decay terms).
854857 score = source_regions_.precursors_new (sr, dg) *
855858 source_normalization_factor * volume;
856859 break ;
0 commit comments