Time census#19
Open
yardasol wants to merge 80 commits intotd-adjointfrom
Open
Conversation
- initial attempt at forced precursor decay (prototype)
a287495 to
fac13c1
Compare
88836eb to
642d08e
Compare
b340fa8 to
8b2d009
Compare
62f2d0f to
4d13633
Compare
- force all particle times to be zero at the beginning of a kinetic simulation - immediatly bank particles if their time falls outside of the next time census boundary on birth - advance precursor particle time after forced decay
- adjust how time_bin_idx is handled, removing the need to add and remove the first element simulation::time_census_boundaries - force time_born for precursor particles to be zero (missing from previous commit) when starting timestepping
- decorrelation generations are treated as consecutive - add some machinery to consistently track generations for decorrelation generations - add machinery to avoid using decorrelation generations by setting `n_decorrelation_generations` to zero
- fix bank time not being zeroed when not decorrelating time batches - alternate column output when not decorrelating time batches - variable reading fixed for `n_decorrelate_generations`
e225a96 to
e08f400
Compare
- fix indexing of precursor_progeny_per_particle to match simulated neutrons - add a vars to track the combined (precursor + neutron) bank size, work per rank, and work index. - fix particle ids for time censusing
e0956e6 to
b66efd8
Compare
- move forced precursor decay to it's own function - allow precursor particle to resample produced neutron energy and angle - various syntax fixes and variable name improvements
- allow generation of precursor particles during non-branchless kinetic simulation - Design decision: force fission-causing neutrons to die on the first fission, relying on their secondary particle bank to keep going - force all secondary particles to have consistent time census indices - some syntax fixes and improvments
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
This PR adds the ability to run time-dependent Monte Carlo simulations. Rather than basing the approach off of a single paper, I used various different sources to pick the methods that would be the most straightforward to implement in OpenMC. The methods are as follows
branchless_collisionsetting to enable branchless collision. This method comes from the "improved" branchless method first discussed in Sjenitzer and Hoogenboom (2013), with further modifications coming from Molnar et al. (2019)forced_decaysetting to enable forced precursor decay, increasing the number of delayed neutrons sampled in the simulation. This feature relies on the addition of a new particle bank to store precursors as source sites for delayed neutrons. The precursor bank is filled via the method described in Molnar et al. (2019).kinetic_simulationsettings on. This feature ensures the number of simulated particles does not exponentially grow or decay over time.The forced decay and time census features required refactoring and generalization of the
init_fission_bank,sort_fission_bank, andsynchronize_bankfunctions, which now all live inbank.cpp.Unsupported features
Fixes # (issue)
Checklist