-
Notifications
You must be signed in to change notification settings - Fork 596
Description
Description
This feature would build upon the source biasing capabilities developed in #3460 and the local adjoint source described in #3710 to add Consistent Adjoint-Driven Importance Sampling (CADIS) as a variance reduction capability in OpenMC. CADIS enables local variance reduction by using information from the adjoint flux, calculated using OpenMC's Random Ray solver, to construct weight windows and source biasing parameters for the forward Monte Carlo calculation.
Alternatives
Although methods like MAGIC and FW-CADIS weight windows can in some cases provide variance reduction for localized tallies (especially when a large and varied set are present), they are fundamentally intended to reduce variance uniformly over the entire problem, and hence will result in time spent tracking some particles in regions of lower importance to the response(s) of interest. Additionally, current FW-CADIS capabilities include only weight windowing, and particularly for localized tallies, the addition of automatically generated source biasing parameters could enable more effective variance reduction.
Compatibility
In the short-term, "cadis" will be added as an option for WeightWindowGenerator.method, though in itself the WeightWindowUpdateMethod currently used for FW-CADIS will suffice for CADIS as well, as both utilize the inverse of the adjoint flux to set the weight window lower bound. In addition to weight windowing, however, a means of turning automated source biasing on and off within CADIS will also be necessary. As a first step, this could be another attribute of the WeightWindowGenerator class, but recognizing the broader scope of the full CADIS workflow, an alternative class might be created in the long-term to manage such composite schemes.
Finally, depending on the method by which adjoint sources are defined, an initial forward calculation may still be needed before the adjoint solve. The approach proposed in #3710 would make this determination based on information specified in the settings.random_ray dictionary, but a more transparent method of designating "target" tallies for local variance reduction might be possible using WeightWindowGenerator attributes as well.