arfc / mlmc

Machine Learning acceleration of Monte Carlo neutron trasnport. Test problems and exploration.
BSD 3-Clause "New" or "Revised" License
5 stars 1 forks source link

brief summary of existing implementation of rouletting and survival biasing. #9

Open katyhuff opened 6 years ago

katyhuff commented 6 years ago

Based on the grep searches done previously:

Russian Roulette ```bash ./docs/source/io_formats/settings.rst:40:cutoff used below which particles undergo Russian roulette. Surviving particles ./docs/source/io_formats/settings.rst:42:rouletting are not turned on by default. The second is the energy cutoff which ./docs/source/io_formats/settings.rst:48: The weight below which particles undergo Russian roulette. ./docs/source/io_formats/settings.rst:54: roulette. ./docs/source/methods/physics.rst:1621:Russian rouletting. Two user adjustable parameters :math:w_c and :math:w_s ./docs/source/methods/physics.rst:1623:roulette and the weight should they survive Russian roulette. The algorithm for ./docs/source/methods/physics.rst:1624:Russian rouletting is as follows. After a collision if :math:w < w_c, then the ./docs/source/methods/physics.rst:1627:Russian roulette is simply :math:w, so the game can be considered "fair". By ./openmc/settings.py:43: Russian roulette. Value for 'weight_avg' should be a float indicating ./openmc/settings.py:45: roulette. Value of energy should be a float indicating energy in eV ./src/physics.F90:122: ! Play russian roulette if survival biasing is turned on ./src/physics.F90:125: call russian_roulette(p) ./src/physics_common.F90:16: subroutine russian_roulette(p) ./src/physics_common.F90:31: end subroutine russian_roulette ./src/physics_mg.F90:94: ! Play russian roulette if survival biasing is turned on ./src/physics_mg.F90:96: call russian_roulette(p) ``` Survival biasing: ```bash ./docs/source/io_formats/settings.rst:582: Element ./docs/source/io_formats/settings.rst:585:The element has no attributes and has an accepted value ./docs/source/io_formats/settings.rst:587:survival biasing, otherwise known as implicit capture or absorption. ./docs/source/methods/eigenvalue.rst:139:source contained in cell :math:i. To ensure that no bias is introduced, the ./docs/source/methods/parallelization.rst:370:method of successive generations) will be biased from the true fundamental ./docs/source/methods/parallelization.rst:373:per cycle is sufficiently large to neglect this bias. ./docs/source/methods/physics.rst:318:fission. If no survival biasing is being used, then the number of neutrons ./docs/source/methods/physics.rst:328:produced is biased in this manner so that the expected number of fission ./docs/source/methods/physics.rst:1588:biasing* or implicit absorption (or sometimes implicit capture, even though ./docs/source/methods/physics.rst:1591:In survival biasing, absorption reactions are prohibited from occurring and ./docs/source/methods/physics.rst:1596: :label: survival-biasing-weight ./docs/source/methods/physics.rst:1602:handled differently if survival biasing is turned on. Although fission reactions ./docs/source/methods/physics.rst:1603:never actually occur with survival biasing, we still need to create fission ./docs/source/methods/physics.rst:1619:Additionally, since survival biasing can reduce the weight of the neutron to ./docs/source/methods/tallies.rst:95:by the volume of the region of integration. If survival biasing is employed, the ./docs/source/methods/tallies.rst:278::math:x_1, x_2, \dots, x_N, then an unbiased estimator for the population mean ./docs/source/methods/tallies.rst:294:distribution also known as the biased sample variance: ./docs/source/methods/tallies.rst:297: :label: biased-variance ./docs/source/methods/tallies.rst:302:This estimator is biased because its expected value is actually not equal to the ./docs/source/methods/tallies.rst:306: :label: biased-variance-expectation ./docs/source/methods/tallies.rst:312:correction_ to come up with an unbiased sample variance estimator: ./docs/source/methods/tallies.rst:315: :label: unbiased-variance ./docs/source/methods/tallies.rst:321:in equation :eq:unbiased-varianceis especially suitable for computation since ./docs/source/methods/tallies.rst:361:We can combine this result with equation :eq:unbiased-varianceto come up with ./docs/source/methods/tallies.rst:362:an unbiased estimator for the variance of the sample mean: ./docs/source/methods/tallies.rst:373:population based on equation :eq:unbiased-variancewill tend to the true ./docs/source/methods/tallies.rst:404::eq:unbiased-variance. If the random variables :math:X_i` are ``` **From ./docs/source/io_formats/settings.rst** The element has no attributes and has an accepted value of "true" or "false". If set to "true", this option will enable the use of survival biasing, otherwise known as implicit capture or absorption. Default: false survival_biasing is an element in settings. From ./docs/source/methods/physics.rst In problems with highly absorbing materials, a large fraction of neutrons may be killed through absorption reactions, thus leading to tallies with very few scoring events. To remedy this situation, an algorithm known as survival biasing or implicit absorption (or sometimes implicit capture, even though this is a misnomer) is commonly used. In survival biasing, absorption reactions are prohibited from occurring and instead, at every collision, the weight of neutron is reduced by probability of absorption occurring, i.e. To be continued

Determine how russian rouletting and survival biasing is currently implemented in OpenMC and write a page of human-readable summary text describing what you understood. (think: a brief report).