Open
Conversation
…source mode, currently incorrect though
…ions of global k estimators
… for products between k and kq tallies for covaraince calculations
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Depends on #3495: This code is stacked on top of the branch from #3495, only commits from d679fae onward are original, any changes to previous commits were merely to rebase onto newer versions of develop.
This code implements the ability to calculate subcritical multiplication parameters
k,kq,ksin fixed source mode (#3495 implements this for eigenvalue mode, along with source effectiveness factor). These quantities are tallied by noting that, in fixed source mode, built-in k-estimators will implicitly accumulate across all generations in a batch, and so give M (the fixed source multiplicity), which can be used to computekviak = 1 - 1/M. To reuse as much existing code as possible, tallies etc. are kept in terms ofMuntil output and statepoint writing.kqis tallied by accumulating built-in k-estimators for only the first generation of source neutrons. Finallyksis computed fromkq,Mvia algebraic relations, and the estimated standard deviation is computed accounting for the correlation betweenkqandMestimates.This involves the following code changes
eigenvalue.cppcalculate_generation_keff()KeffType, which just maps global simulation parameters to corresponding local parameterscalculate_average_keff()KeffTypeinvolving pointer initializationsimulation::kfromsimulation::keffwhich biases physics and is not wanted in fixed source mode.openmc_get_keff()intoget_combined_k_from_tallies, which is used to support additionalopenmc_get_kq()openc_get_ks(), which used accumulatedk-kqproduct tallies to compute the correct standard deviation of a combinedksestimator (inferred from combined estimators fork,kq) accounting for covariance betweenk,kqestimatorsk_combinedin fixed source subcritical mode, and added additional datasets forkq,kscombined and generation.settings.calculate_subcritical_kandprint_all_k_factorsto control the calculation and printing of these quantities in fixed source modesimulation.cppparticle.cppandphysics.cpptally.cppChecklist