Random Ray Adjoint Mode (#3191)

Co-authored-by: Paul Romano <paul.k.romano@gmail.com>
This commit is contained in:
John Tramm 2024-11-20 14:15:41 -06:00 committed by GitHub
parent fbb115921c
commit 172867b1df
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
21 changed files with 958 additions and 169 deletions

View file

@ -558,7 +558,7 @@ following methods are currently available in OpenMC:
- 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.
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
@ -593,6 +593,33 @@ estimator, the following code would be used:
settings.random_ray['volume_estimator'] = 'naive'
-----------------
Adjoint Flux Mode
-----------------
The adjoint flux random ray solver mode can be enabled as:
entire
::
settings.random_ray['adjoint'] = True
When enabled, OpenMC will first run a forward transport simulation followed by
an adjoint transport simulation. The purpose of the forward solve is to compute
the adjoint external source when an external source is present in the
simulation. Simulation settings (e.g., number of rays, batches, etc.) will be
identical for both simulations. At the conclusion of the run, all results (e.g.,
tallies, plots, etc.) will be derived from the adjoint flux rather than the
forward flux but are not labeled any differently. The initial forward flux
solution will not be stored or available in the final statepoint file. Those
wishing to do analysis requiring both the forward and adjoint solutions will
need to run two separate simulations and load both statepoint files.
.. note::
When adjoint mode is selected, OpenMC will always perform a full forward
solve and then run a full adjoint solve immediately afterwards. Statepoint
and tally results will be derived from the adjoint flux, but will not be
labeled any differently.
---------------------------------------
Putting it All Together: Example Inputs
---------------------------------------