mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-28 22:26:08 -04:00
Alternative Random Ray Volume Estimators (#3060)
Co-authored-by: Olek <45364492+yardasol@users.noreply.github.com>
This commit is contained in:
parent
86fc40a645
commit
5bc04b5d78
47 changed files with 2517 additions and 727 deletions
|
|
@ -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
|
||||
---------------------------------------
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue