Alternative Random Ray Volume Estimators (#3060)

Co-authored-by: Olek <45364492+yardasol@users.noreply.github.com>
This commit is contained in:
John Tramm 2024-08-23 11:56:26 -05:00 committed by GitHub
parent 86fc40a645
commit 5bc04b5d78
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
47 changed files with 2517 additions and 727 deletions

View file

@ -535,6 +535,64 @@ points of 1.0e-2 and 1.0e1.
# Add fixed source and ray sampling source to settings file
settings.source = [neutron_source]
.. _usersguide_vol_estimators:
-----------------------------
Alternative Volume Estimators
-----------------------------
As discussed in the random ray theory section on :ref:`volume estimators
<methods_random_ray_vol>`, there are several possible derivations for the scalar
flux estimate. These options deal with different ways of treating the
accumulation over ray lengths crossing each FSR (a quantity directly
proportional to volume), which can be computed using several methods. The
following methods are currently available in OpenMC:
.. list-table:: Comparison of Estimators
:header-rows: 1
:widths: 10 30 30 30
* - Estimator
- Description
- Pros
- Cons
* - ``simulation_averaged``
- Accumulates total active ray lengths in each FSR over all iterations,
improving the estimate of the volume in each cell each iteration.
- * Virtually unbiased after several iterations
* Asymptotically approaches the true analytical volume
* Typically most efficient in terms of speed vs. accuracy
- * Higher variance
* Can lead to negative fluxes and numerical instability in pathological
cases
* - ``naive``
- Treats the volume as composed only of the active ray length through each
FSR per iteration, being a biased but numerically consistent ratio
estimator.
- * Low variance
* Unlikely to result in negative fluxes
* Recommended in cases where the simulation averaged estimator is
unstable
- * Biased estimator
* Requires more rays or longer active ray length to mitigate bias
* - ``hybrid`` (default)
- Applies the naive estimator to all cells that contain an external (fixed)
source contribution. Applies the simulation averaged estimator to all
other cells.
- * High accuracy/low bias of the simulation averaged estimator in most
cells
* Stability of the naive estimator in cells with fixed sources
- * Can lead to slightly negative fluxes in cells where the simulation
averaged estimator is used
These estimators can be selected by setting the ``volume_estimator`` field in the
:attr:`openmc.Settings.random_ray` dictionary. For example, to use the naive
estimator, the following code would be used:
::
settings.random_ray['volume_estimator'] = 'naive'
---------------------------------------
Putting it All Together: Example Inputs
---------------------------------------