MAVRIC.rst 162 KB
 Batson Iii, John committed Jul 27, 2020 1 2 3 4 5 6 7 8 9 10 .. _MAVRIC: MAVRIC: Monaco with Automated Variance Reduction using Importance Calculations ============================================================================== *D. E. Peplow and C. Celik* Introduction ------------  Batson Iii, John committed Aug 21, 2020 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 Monte Carlo particle transport calculations for deep penetration problems can require very long run times in order to achieve an acceptable level of statistical uncertainty in the final answers. Discrete-ordinates codes can be faster but have limitations relative to the discretization of space, energy, and direction. Monte Carlo calculations can be modified (biased) to produce results with the same variance in less time if an approximate answer or some other additional information is already known about the problem. If importances can be assigned to different particles based on how much they will contribute to the final answer, then more time can be spent on important particles, with less time devoted to unimportant particles. One of the best ways to bias a Monte Carlo code for a particular tally is to form an importance map from the adjoint flux based on that tally. Unfortunately, determining the exact adjoint flux could be just as difficult as computing the original problem itself. However, an approximate adjoint can still be very useful in biasing the Monte Carlo solution :cite:wagner_acceleration_1997. Discrete ordinates can be used to quickly compute that approximate adjoint. Together, Monte Carlo and discrete ordinates can be used to find solutions to thick shielding problems in reasonable times. The MAVRIC (Monaco with Automated Variance Reduction using Importance Calculations) sequence is based on the CADIS (Consistent Adjoint Driven Importance Sampling) and FW-CADIS (Forward-Weighted CADIS) methodologies :cite:wagner_automated_1998 :cite:wagner_automated_2002 :cite:haghighat_monte_2003 :cite:wagner_forward-weighted_2007 MAVRIC automatically performs a three-dimensional, discrete-ordinates calculation using Denovo to compute the adjoint flux as a function of position and energy. This adjoint flux information is then used to construct an importance map (i.e., target weights for weight windows) and a biased source distribution that work together—particles are born with a weight matching the target weight of the cell into which they are born. The fixed-source Monte Carlo radiation transport Monaco :cite:peplow_monte_2011 then uses the importance map for biasing during particle transport, and it uses the biased source distribution as its source. During transport, the particle weight is compared with the importance map after each particle interaction and whenever a particle crosses into a new importance cell in the map. For problems that do not require variance reduction to complete in a reasonable time, execution of MAVRIC without the importance map calculation provides an easy way to run Monaco. For problems that do require variance reduction to complete in a reasonable time, MAVRIC removes the burden of setting weight windows from the user and performs it automatically with a minimal amount of additional input. Note that the MAVRIC sequence can be used with the final Monaco calculation as either a multigroup (MG) or a continuous-energy (CE) calculation. Monaco has a wide variety of tally options: it can calculate fluxes (by group) at a point in space, over any geometrical region, or for a user-defined, three-dimensional, rectangular grid. These tallies can also integrate the fluxes with either standard response functions from the cross section library or user-defined response functions. All of these tallies are available in the MAVRIC sequence. Although it was originally designed for CADIS, the MAVRIC sequence is also capable of creating importance maps using both forward and adjoint deterministic estimates. The FW-CADIS method :cite:wagner_fw-cadis_2014 can be used for optimizing several tallies at once, a mesh tally over a large region, or a mesh tally over the entire problem. Several other methods for producing importance maps are also available in MAVRIC and are explored in :ref:appendixc.  Batson Iii, John committed Jul 27, 2020 50 51 52 53  CADIS Methodology -----------------  Batson Iii, John committed Aug 21, 2020 54 55 56 57 58 59 MAVRIC is an implementation of CADIS (Consistent Adjoint Driven Importance Sampling) using the Denovo SN and Monaco Monte Carlo functional modules. Source biasing and a mesh-based importance map, overlaying the physical geometry, are the basic methods of variance reduction. To make the best use of an importance map, the map must be made consistent with the source biasing. If the source biasing is inconsistent with the weight windows that will be used during the transport process, then source particles will undergo Russian roulette or splitting immediately, wasting computational time and negating the intent of the biasing.  Batson Iii, John committed Jul 27, 2020 60 61 62 63  Overview of CADIS ~~~~~~~~~~~~~~~~~  Batson Iii, John committed Aug 21, 2020 64 CADIS is well described in the literature, so only a  Batson Iii, John committed Jul 27, 2020 65 66 67 68 69 70 71 brief overview is given here. Consider a class source-detector problem described by a unit source with emission probability distribution function :math:q\left(\overrightarrow{r},E \right) and a detector response function :math:\sigma_{d}\left(\overrightarrow{r},E \right). To determine the total detector response, *R*, the forward scalar flux :math:\phi\left(\overrightarrow{r},E \right) must be known. The response is found by integrating the product of the detector response  Batson Iii, John committed Aug 21, 2020 72 function and the flux over the detector volume :math:V_{d}:  Batson Iii, John committed Jul 27, 2020 73 74 75 76 77 78 79 80 81 82 83 84 85 86  .. math:: :label: mavric-1 R = \int_{V_{d}}^{}{\int_{E}^{}{\sigma_{d}\left( \overrightarrow{r},E \right)}}\phi\left(\overrightarrow{r},E \right)\textit{dE dV.} Alternatively, if the adjoint scalar flux, :math:\phi^{+}\left(\overrightarrow{r},E \right), is known from the corresponding adjoint problem with adjoint source :math:q^{+}\left(\overrightarrow{r},E \right) = \sigma_{d}\left(\overrightarrow{r},E \right), then the total detector response could be found by integrating the product of the forward source and the adjoint flux over the source  Batson Iii, John committed Aug 21, 2020 87 volume, :math:V_{s}:  Batson Iii, John committed Jul 27, 2020 88 89 90 91 92 93 94 95 96 97 98 99  .. math:: :label: mavric-2 R = \int_{V_{s}}^{}{\int_{E}^{}{q\left(\overrightarrow{r},E \right)}}\phi^{+}\left( \overrightarrow{r},E \right)\textit{dE dV.} Unfortunately, the exact adjoint flux may be just as difficult to determine as the forward flux, but an approximation of the adjoint flux can still be used to form an importance map and a biased source distribution for use in the forward Monte Carlo calculation.  Batson Iii, John committed Aug 21, 2020 100 101 102 Wagner :cite:wagner_acceleration_1997 showed that if an estimate of the adjoint scalar flux for the corresponding adjoint problem can be found, then an estimate of the response *R* can be made using :eq:mavric-2. The adjoint source for the  Batson Iii, John committed Jul 27, 2020 103 adjoint problem is typically separable and corresponds to the detector  Batson Iii, John committed Aug 21, 2020 104 response and spatial area of the tally to be optimized:  Batson Iii, John committed Jul 27, 2020 105 106 107 :math:q^{+}\left(\overrightarrow{r},E \right) = \sigma_{d}\left(E \right)g\left( \overrightarrow{r} \right), where :math:\sigma_{d}\left( E \right) is a flux-to-dose conversion factor and :math:g\left( \overrightarrow{r} \right) is 1 in the tally  Batson Iii, John committed Aug 21, 2020 108 volume and is 0 otherwise. Then, from the adjoint flux  Batson Iii, John committed Jul 27, 2020 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 :math:\phi^{+}\left( \overrightarrow{r},E \right) and response estimate *R*, a biased source distribution, :math:\widehat{q}\left( \overrightarrow{r},E \right), for source sampling of the form .. math:: :label: mavric-3 \widehat{q}\left(\overrightarrow{r},E \right) = \frac{1}{R}q\left(\overrightarrow{r},E\right)\phi^{+}\left( \overrightarrow{r},E \right) and weight window target values, :math:\overline{w}\left( \overrightarrow{r},E \right), for particle transport of the form .. math:: :label: mavric-4 \overline{w}\left( \overrightarrow{r},E \right) = \frac{R}{\phi^{+}\left( \overrightarrow{r},E \right)}  Batson Iii, John committed Aug 21, 2020 132 can be constructed, which minimizes the variance in the forward Monte  Batson Iii, John committed Jul 27, 2020 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 Carlo calculation of *R*. When a particle is sampled from the biased source distribution :math:\widehat{q}\left( \overrightarrow{r},E \right), to preserve a fair game, its initial weight is set to .. math:: :label: mavric-5 w_{0}\left(\overrightarrow{r},E \right) = \frac{q\left(\overrightarrow{r},E \right)}{\widehat{q}\left( \overrightarrow{r},E \right)} = \frac{R}{\phi^{+}\left( \overrightarrow{r},E \right)}\, which exactly matches the target weight for that particle’s position and energy. This is the “consistent” part of CADIS—source particles are born  Batson Iii, John committed Aug 21, 2020 148 149 with a weight matching the weight window of the region/energy into which they are born. The source biasing and the weight windows work together.  Batson Iii, John committed Jul 27, 2020 150 151 152 153 154 155 156 157 158 159  CADIS has been applied to many problems—including reactor ex-core detectors, well-logging instruments, cask shielding studies, and independent spent fuel storage facility models—and has demonstrated very significant speed-ups in calculation time compared to analog simulations. Multiple sources with CADIS ~~~~~~~~~~~~~~~~~~~~~~~~~~~  Batson Iii, John committed Aug 21, 2020 160 For a typical Monte Carlo calculation with multiple sources---each with a  Batson Iii, John committed Jul 27, 2020 161 162 163 probability distribution function :math:q_{i}\left( \overrightarrow{r},E \right) and a strength :math:S_{i}, giving a total source strength of  Batson Iii, John committed Aug 21, 2020 164 :math:S = \sum_{}^{}S_{i}---the source is sampled in two steps. First,  Batson Iii, John committed Jul 27, 2020 165 166 167 168 169 the specific source *i* is sampled with probability :math:p\left( i \right) = \ S_{i}/S, and then the particle is sampled from the specific source distribution :math:q_{i}\left( \overrightarrow{r},E \right).  Batson Iii, John committed Aug 21, 2020 170 171 The source sampling can be biased at both levels: from which source to sample and how to sample each source. For example, the specific source can  Batson Iii, John committed Jul 27, 2020 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 be sampled using some arbitrary distribution, :math:\widehat{p}\left( i \right), and then the individual sources can be sampled using distributions :math:{\widehat{q}}_{i}\left( \overrightarrow{r},E \right). Particles would then have a birth weight of .. math:: :label: mavric-6 w_{0} \equiv \ \left(\frac{p\left( i \right)}{\widehat{p}\left( i \right)} \right)\left(\frac{q_{i}\left( \overrightarrow{r},E \right)}{{\widehat{q}}_{i}\left( \overrightarrow{r},E \right)} \right)\text{.} For CADIS, a biased multiple source needs to be developed so that the birth weights of sampled particles still match the target weights of the  Batson Iii, John committed Aug 21, 2020 187 importance map. For a problem with multiple sources---each with a  Batson Iii, John committed Jul 27, 2020 188 distribution :math:q_{i}\left( \overrightarrow{r},E \right) and a  Batson Iii, John committed Aug 21, 2020 189 strength :math:S_{i}---the goal of the Monte Carlo calculation is to  Batson Iii, John committed Jul 27, 2020 190 191 compute some response :math:R for a response function :math:\sigma_{d}\left( \overrightarrow{r},E \right) at a given  Batson Iii, John committed Aug 21, 2020 192 detector,  Batson Iii, John committed Jul 27, 2020 193 194 195 196 197  .. math:: :label: mavric-7  Batson Iii, John committed Aug 21, 2020 198  R = \ \int_{V}^{}{\int_{E}^{}{\sigma_{d}\left( \overrightarrow{r},E \right)\phi \left( \overrightarrow{r},E \right)\textit{dE dV.}}}  Batson Iii, John committed Jul 27, 2020 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227  Note that the flux :math:\phi\left( \overrightarrow{r},E \right) has contributions from each source. The response, :math:R_{i}, from each specific source (:math:S_{i} with :math:q_{i}\left( \overrightarrow{r},E \right)) can be expressed using just the flux from that source, :math:\phi_{i}\left( \overrightarrow{r},E \right), as .. math:: :label: mavric-8 R_{i} = \ \int_{V}^{}{\int_{E}^{}{\sigma_{d}\left(\overrightarrow{r},E \right)\ \phi_{i}\left(\overrightarrow{r},E \right)\textit{dE dV .}}} The total response is then found as :math:R = \sum_{i}^{}R_{i}. For the adjoint problem, using the adjoint source of :math:q^{+}\left( \overrightarrow{r},E \right) = \sigma_{d}\left( \overrightarrow{r},E \right), the response :math:R can also be calculated as .. math:: :label: mavric-9 R = \ \int_{V}^{}{\int_{E}^{}{\left\lbrack \sum_{i}^{}{S_{i}q_{i}\left( \overrightarrow{r},E \right)} \right\rbrack\ \phi^{+}\left( \overrightarrow{r},E \right)\textit{dE dV}}},  Batson Iii, John committed Aug 21, 2020 228 with the response contribution from each specific source being  Batson Iii, John committed Jul 27, 2020 229 230 231 232 233  .. math:: :label: mavric-10  Batson Iii, John committed Aug 21, 2020 234  R_{i} = \ \int_{V}^{}{\int_{E}^{}{\ {S_{i}q_{i}\left( \overrightarrow{r},E \right)\phi^{+}}\left( \overrightarrow{r}, E \right)\textit{dE dV.}}}  Batson Iii, John committed Jul 27, 2020 235 236 237 238 239 240 241 242 243 244  The target weights :math:\overline{w}\left( \overrightarrow{r},E \right) of the importance map are found using .. math:: :label: mavric-11  Batson Iii, John committed Aug 21, 2020 245  \overline{w}\left( \overrightarrow{r},E \right) = \frac{R/S}{\phi^{+}\left( \overrightarrow{r},E \right)\ }.  Batson Iii, John committed Jul 27, 2020 246 247 248 249 250 251 252 253 254  Each biased source :math:{\widehat{q}}_{i}\left( \overrightarrow{r},E \right) pdf is found using .. math:: :label: mavric-12  Batson Iii, John committed Aug 21, 2020 255 256  {\widehat{q}}_{i}\left(\overrightarrow{r},E \right) = \frac{S_{i}}{R_{i}}{q_{i}\left( \overrightarrow{r},E \right)\phi}^{+}\left( \overrightarrow{r},E \right)\ ,  Batson Iii, John committed Jul 27, 2020 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271  and the biased distribution used to select an individual source is :math:\widehat{p}\left( i \right) = \ R_{i}/\sum_{}^{}{R_{i} = R_{i}/R}. When using the biased distribution used to select an individual source, :math:\widehat{p}\left( i \right), and the biased source distribution, :math:{\widehat{q}}_{i}\left( \overrightarrow{r},E \right), the birth weight of the sampled particle will be .. math:: :label: mavric-13 \begin{matrix}  Batson Iii, John committed Aug 21, 2020 272 273  w_{0} & \equiv & \left( \frac{p\left( i \right)}{\widehat{p}\left( i \right)} \right)\left( \frac{q_{i}\left( \overrightarrow{r}, E \right)}{{\widehat{q}}_{i}\left(\overrightarrow{r},E \right)} \right) \\ & = & \ \left( \frac{\frac{S_{i}}{S}}{\frac{R_{i}}{R}} \right) \left( \frac{q_{i}\left( \overrightarrow{r},E \right)}{\frac{S_{i}}{R_{i}}{q_{i}\left( \overrightarrow{r},E \right)\phi^{+}}\left( \overrightarrow{r},E \right)} \right) \\ & = & \frac{R/S}{{\phi}^{+}\left( \overrightarrow{r},E \right)\ }, \\  Batson Iii, John committed Jul 27, 2020 274 275 276 277 278 279 280 281 282  \end{matrix} which matches the target weight, :math:\overline{w}\left( \overrightarrow{r},E \right). Multiple tallies with CADIS ~~~~~~~~~~~~~~~~~~~~~~~~~~~  Batson Iii, John committed Aug 21, 2020 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 The CADIS methodology works quite well for classic source/detector problems. The statistical uncertainty of the tally that serves as the adjoint source is greatly reduced since the Monte Carlo transport is optimized to spend more simulation time on those particles that contribute to the tally, at the expense of tracking particles in other parts of phase space. However, more recently, Monte Carlo has been applied to problems in which multiple tallies need to all be found with low statistical uncertainties. The extension of this idea is the mesh tally—where each voxel is a tally for which the user desires low statistical uncertainties. For these problems, the user must accept a total simulation time that is controlled by the tally with the slowest convergence and simulation results where the tallies have a wide range of relative uncertainties. The obvious way around this problem is to create a separate problem for each tally and use CADIS to optimize each. Each simulation can then be run until the tally reaches the level of acceptable uncertainty. For more than a few tallies, this approach becomes complicated and time-consuming for the user. For large mesh tallies, this approach is not reasonable. Another approach to treat several tallies, if they are in close proximity to each other, or a mesh tally covering a small portion of the physical problem, is to use the CADIS methodology with the adjoint source near the middle of the tallies to be optimized. Since particles in the forward Monte Carlo simulation are optimized to reach the location of the adjoint source, all the tallies surrounding that adjoint source should converge quickly. This approach requires the difficult question of “how close.” If the tallies are too far apart, then certain energies or regions that are needed for one tally may be of low importance for getting particles to the central adjoint source. This may under-predict the flux or dose at the tally sites far from the adjoint source. MAVRIC has the capability to have multiple adjoint sources with this problem in mind. For several tallies that are far from each other, multiple adjoint sources could be used. In the forward Monte Carlo, particles would be drawn to one of those adjoint sources. The difficulty with this approach is that typically the tally that is closest to the true physical source converges faster than the other tallies—--showing that the closest adjoint source seems to attract more particles than the others. Assigning more strength to the adjoint source further from the true physical source helps to address this issue, but finding the correct strengths so that all of the tallies converge to the same relative uncertainty in one simulation is an iterative process for the user.  Batson Iii, John committed Jul 27, 2020 315 316 317 318  Forward-weighted CADIS ~~~~~~~~~~~~~~~~~~~~~~  Batson Iii, John committed Aug 21, 2020 319 To converge several tallies to the same relative uncertainty in  Batson Iii, John committed Jul 27, 2020 320 one simulation, the adjoint source corresponding to each of those  Batson Iii, John committed Aug 21, 2020 321 322 323 324 325 tallies must be weighted inversely by the expected tally value. To calculate the dose rate at two points—--say one near a reactor and one far from a reactor—--in one simulation, then the total adjoint source used to develop the weight windows and biased source must have two parts. The adjoint source far from the reactor must have  Batson Iii, John committed Jul 27, 2020 326 327 328 329 more strength than the adjoint source near the reactor by a factor equal to the ratio of the expected near dose rate to the expected far dose rate.  Batson Iii, John committed Aug 21, 2020 330 This concept can be extended to mesh tallies, as well. Instead of using a  Batson Iii, John committed Jul 27, 2020 331 332 333 334 335 336 337 338 uniform adjoint source strength over the entire mesh tally volume, each voxel of the adjoint source should be weighted inversely by the expected forward tally value for that voxel. Areas of low flux or low dose rate would have more adjoint source strength than areas of high flux or high dose rate. An estimate of the expected tally results can be found by using a quick discrete-ordinates calculation. This leads to an extension of the CADIS  Batson Iii, John committed Aug 21, 2020 339 method: forward-weighted CADIS (FW-CADIS). First, a forward S\ :sub:N calculation is performed to  Batson Iii, John committed Jul 27, 2020 340 estimate the expected tally results. A total adjoint source is  Batson Iii, John committed Aug 21, 2020 341 constructed so that the adjoint source corresponding to each tally is  Batson Iii, John committed Jul 27, 2020 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 weighted inversely by those forward tally estimates. Then the standard CADIS approach is used—an importance map (target weight windows) and a biased source are made using the adjoint flux computed from the adjoint S\ :sub:N calculation. For example, if the goal is to calculate a detector response function :math:\sigma_{d}\left( E \right) (such as dose rate using flux-to-dose-rate conversion factors) over a volume (defined by :math:g\left( \overrightarrow{r} \right)) corresponding to mesh tally, then instead of simply using :math:q^{+}\left( \overrightarrow{r},E \right) = \sigma_{d}\left( E \right)\ g(\overrightarrow{r}), the adjoint source would be .. math:: :label: mavric-14  Batson Iii, John committed Aug 21, 2020 359  q^{+}\left( \overrightarrow{r},E \right) = \frac{\sigma_{d}\left( E \right)\text{g}\left( \overrightarrow{r} \right)}{\int_{}^{}{\sigma_{d}\left( E \right)\phi\left( \overrightarrow{r},E \right)}\textit{dE}}\ ,  Batson Iii, John committed Jul 27, 2020 360 361  where :math:\phi\left( \overrightarrow{r},E \right) is an estimate of  Batson Iii, John committed Aug 21, 2020 362 the forward flux, and the energy integral is over the voxel at :math:\overrightarrow{r}.  Batson Iii, John committed Jul 27, 2020 363 364 365 366 367 The adjoint source is nonzero only where the mesh tally is defined (:math:g\left( \overrightarrow{r} \right)), and its strength is inversely proportional to the forward estimate of dose rate. The relative uncertainty of a tally is controlled by two components:  Batson Iii, John committed Aug 21, 2020 368 (1) the number of tracks contributing to the tally and (2) the  Batson Iii, John committed Jul 27, 2020 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 shape of the distribution of scores contributing to that tally. In the Monte Carlo game, the number of simulated particles, :math:m\left( \overrightarrow{r},E \right), can be related to the true physical particle density, :math:n\left( \overrightarrow{r},E \right), by the average Monte Carlo weight of scoring particles, :math:\overline{w}\left( \overrightarrow{r},E \right), by .. math:: :label: mavric-15 n\left( \overrightarrow{r},E \right) = \ \overline{w}\left( \overrightarrow{r},E \right)\text{m}\left( \overrightarrow{r},E \right). In a typical Monte Carlo calculation, tallies are made by adding some score, multiplied by the current particle weight, to an accumulator. To calculate a similar quantity related to the Monte Carlo particle density would be very close to calculating any other quantity but without including the particle weight. The goal of FW-CADIS is to make the Monte Carlo particle density, :math:m\left( \overrightarrow{r},E \right),  Batson Iii, John committed Aug 21, 2020 389 390 uniform over the tally areas, so an importance map must be developed that represents the importance of achieving uniform Monte Carlo particle  Batson Iii, John committed Jul 27, 2020 391 392 393 394 395 396 397 398 density. By attempting to keep the Monte Carlo particle density more uniform, more uniform relative errors for the tallies should be realized. Two options for forward weighting are possible. For tallies over some area where the entire group-wise flux is needed with low relative uncertainties, the adjoint source should be weighted inversely by the forward flux, :math:\phi\left( \overrightarrow{r},E \right). The other  Batson Iii, John committed Aug 21, 2020 399 option, for a tally in which only an energy-integrated quantity is desired,  Batson Iii, John committed Jul 27, 2020 400 is to weight the adjoint inversely by that energy-integrated  Batson Iii, John committed Aug 21, 2020 401 402 quantity,\ :math:\int_{}^{}{\sigma_{d}\left( E \right)\phi\left( \overrightarrow{r},E \right)}\text{\ dE}. For a tally in which the total flux is desired, then the response in the  Batson Iii, John committed Jul 27, 2020 403 404 405 406 adjoint source is simply :math:\sigma_{d}\left( E \right) = 1. To optimize the forward Monte Carlo simulation for the calculation of some quantity at multiple tally locations or across a mesh tally, the  Batson Iii, John committed Aug 21, 2020 407 adjoint source must be weighted by the estimate of that quantity.  Batson Iii, John committed Jul 27, 2020 408 409 410 411 412 413 414 415 For a tally defined by its spatial location :math:g\left( \overrightarrow{r} \right) and its optional response :math:\sigma_{d}\left( E \right), the standard adjoint source would be :math:q^{+}\left( \overrightarrow{r},E \right) = \sigma_{d}\left( E \right)\text{g}\left( \overrightarrow{r} \right). The forward-weighted adjoint source, :math:q^{+}\left( \overrightarrow{r},E \right), depending on what quantity is to be optimized, is listed below.  Batson Iii, John committed Aug 21, 2020 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 .. list-table:: :header-rows: 1 :widths: 50 100 200 * - For the calculation of - - Adjoint source * - Energy and spatially dependent flux - :math:\phi\left(\overrightarrow{r},E \right) - .. math:: \frac{g\left( \overrightarrow{r}\right)}{\phi\left(\overrightarrow{r},E \right)} * - Spatially dependent total flux - :math:\int_{}^{}{\phi\left( \overrightarrow{r},E \right)}\textit{dE} - .. math:: \frac{g\left( \overrightarrow{r}\right)}{\int_{}^{}{\phi\left( \overrightarrow{r},E \right)}\textit{dE}} * - Spatially dependent total response - :math:\int_{}^{}{\sigma_{d}\left( E \right)\phi \left(\overrightarrow{r},E\right)}\textit{dE} - .. math:: \frac{\sigma_{d}\left( E \right)\text{g}\left( \overrightarrow{r} \right)}{\int_{}^{}{\sigma_{d}\left( E \right)\phi \left( \overrightarrow{r},E \right)}\textit{dE}}  Batson Iii, John committed Jul 27, 2020 433 434 435  The bottom line of FW-CADIS is that in order to calculate a quantity at multiple tally locations (or across a mesh tally) with more uniform  Batson Iii, John committed Aug 21, 2020 436 relative uncertainties, an adjoint source must be developed for an  Batson Iii, John committed Jul 27, 2020 437 438 439 440 441 442 objective function that keeps some non-physical quantity—related to the Monte Carlo particle density and similar in form to the desired quantity—constant. FW-CADIS uses the solution of a forward discrete-ordinates calculation to properly weight the adjoint source. After that, the standard CADIS approach is used.  Batson Iii, John committed Jul 27, 2020 443 MAVRIC Implementation of CADIS  Batson Iii, John committed Aug 21, 2020 444 445 446 447 448 449 450 451 452 453 454 455 456 457 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ With MAVRIC, as with other shielding codes, the user defines the problem as a set of physical models—the material compositions, the geometry, the source, and the detectors (locations and response functions)—as well as some mathematical parameters on how to solve the problem (number of histories, etc.). For the variance reduction portion of MAVRIC, the only additional inputs required are (1) the mesh planes to use in the discrete-ordinates calculation(s) and (2) the adjoint source description—--basically the location and the response of each tally to optimize in the forward Monte Carlo calculation. MAVRIC uses this information to construct a Denovo adjoint problem. (The adjoint source is weighted by a Denovo forward flux or response estimate for FW-CADIS applications.) MAVRIC then uses the CADIS methodology: it combines the adjoint flux from the Denovo calculation with the source description and creates the importance map (weight window targets) and the mesh-based biased source. Monaco is then run using the CADIS biased source distribution and the weight window targets.  Batson Iii, John committed Jul 27, 2020 458 459  Denovo  Batson Iii, John committed Aug 21, 2020 460 ^^^^^^  Batson Iii, John committed Jul 27, 2020 461   Batson Iii, John committed Aug 21, 2020 462 463 464 465 466 467 468 Denovo is a parallel three-dimensional SN code that is used to generate adjoint (and, for FW-CADIS, forward) scalar fluxes for the CADIS methods in MAVRIC. For use in MAVRIC/CADIS, it is highly desirable that the SN code be fast, positive, and robust. The phase-space shape of the forward and adjoint fluxes, as opposed to a highly accurate solution, is the most important quality for Monte Carlo weight-window generation. Accordingly, Denovo provides a step-characteristics spatial differencing option that produces positive scalar fluxes as long as the source (volume plus in-scatter) is positive. Denovo uses an orthogonal, nonuniform mesh that is ideal for CADIS applications because of the speed and robustness of calculations on this mesh type.  Batson Iii, John committed Jul 27, 2020 469 470 471 472 473 474 475 476 477 478 479  Denovo uses the highly robust GMRES (Generalized Minimum Residual) Krylov method to solve the SN equations in each group. GMRES has been shown to be more robust and efficient than traditional source (fixed-point) iteration. The in-group discrete SN equations are defined as .. math:: :label: mavric-16 \mathbf{L}\psi = \mathbf{\text{MS}}\phi + q where **L** is the differential transport operator, **M** is the moment-to-discrete operator, **S** is the matrix of scattering  Batson Iii, John committed Aug 21, 2020 480 cross section moments, *q* is the external and in-scatter source,  Batson Iii, John committed Jul 27, 2020 481 482 :math:\phi is the vector of angular flux moments, and :math:\psi is the vector of angular fluxes at discrete angles. Applying the operator  Batson Iii, John committed Aug 21, 2020 483 **D**, where :math:\phi = \mathbf{D}\psi, and rearranging terms, casts  Batson Iii, John committed Jul 27, 2020 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 the in-group equations in the form of a traditional linear system, :math:\mathbf{A}x = b, .. math:: :label: mavric-17 \left( \mathbf{I} - \mathbf{D}\mathbf{L}^{- 1}\mathbf{\text{MS}} \right) = \mathbf{D}\mathbf{L}^{- 1}q . The operation :math:\mathbf{L}^{- 1}\nu, where :math:\nu is an iteration vector, is performed using a traditional wave-front solve (transport sweep). The parallel implementation of the Denovo wave-front solver uses the well-known Koch-Baker-Alcouffe (KBA) algorithm, which is a two-dimensional block‑spatial decomposition of a three-dimensional orthogonal mesh :cite:baker_sn_1998. The Trilinos package is used for the GMRES implementation :cite:willenbring_trilinos_2003 Denovo stores the mesh-based scalar fluxes in a  Batson Iii, John committed Aug 21, 2020 499 double precision binary file (\*.dff) called a *Denovo flux file*. Past  Batson Iii, John committed Jul 27, 2020 500 501 502 503 504 505 versions of SCALE/Denovo used the TORT :cite:rhoades_tort_1997 \*.varscl file format (DOORS package :cite:rhoades_doors_1998), but this was limited to single precision. Since the rest of the MAVRIC sequence has not yet been parallelized, Denovo is currently used only in serial mode within MAVRIC. Monaco  Batson Iii, John committed Aug 21, 2020 506 ^^^^^^  Batson Iii, John committed Jul 27, 2020 507 508  The forward Monte Carlo transport is performed using Monaco, a  Batson Iii, John committed Aug 21, 2020 509 fixed-source shielding code that uses the SCALE General Geometry  Batson Iii, John committed Jul 27, 2020 510 511 512 513 514 515 516 517 Package (SGGP, the same as used by the criticality code KENO-VI) and the standard SCALE material information processor. Monaco can use either MG or CE cross section libraries. Monaco was originally based on the MORSE Monte Carlo code but has been extensively modified to modernize the coding, incorporate more flexibility in terms of sources/tallies, and read a user-friendly block/keyword style input. Much of the input to MAVRIC is the same as Monaco. More details can be  Batson Iii, John committed Aug 21, 2020 518 found in the Monaco chapter of the SCALE manual (SECTIONREFERENCE).  Batson Iii, John committed Jul 27, 2020 519 520  Running MAVRIC  Batson Iii, John committed Aug 21, 2020 521 ^^^^^^^^^^^^^^  Batson Iii, John committed Jul 27, 2020 522 523 524  The objective of a SCALE sequence is to execute several codes, passing the output from one to the input of the next, in order to perform some  Batson Iii, John committed Aug 21, 2020 525 analysis—--tasks that users typically had to do in the past. MAVRIC does  Batson Iii, John committed Jul 27, 2020 526 527 528 529 530 531 532 this for difficult shielding problems by running approximate discrete-ordinates calculations, constructing an importance map and biased source for one or more tallies that the user wants to optimize in the Monte Carlo calculation, and then using those in a forward Monaco Monte Carlo calculation. MAVRIC also prepares the forward and adjoint cross sections when needed. The steps of a MAVRIC sequence are listed in :numref:Mavric-sequence. The user can instruct MAVRIC to run this whole sequence of  Batson Iii, John committed Aug 21, 2020 533 steps or just some subset of the steps to verify the  Batson Iii, John committed Jul 27, 2020 534 535 536 537 538 539 540 541 542 543 544 intermediate steps or to reuse previously calculated quantities in a new analyses. The MAVRIC sequence can be stopped after key points by using the “parm= *parameter* ” operator on the “=mavric” command line, which is the first line of the input file. The various parameters are listed in Table :numref:mavric-param. These parameters allow the user to perform checks and make changes to the importance map calculation before the actual Monte Carlo calculation in Monaco. MAVRIC also allows the sequence to start at several different points. If  Batson Iii, John committed Aug 21, 2020 545 an importance map and biased source have already been computed, they can then  Batson Iii, John committed Jul 27, 2020 546 547 be used directly. If the adjoint scalar fluxes are known, they can quickly be used to create the importance map and biased source and then  Batson Iii, John committed Aug 21, 2020 548 begin the forward Monte Carlo calculation. All of the different combinations of  Batson Iii, John committed Jul 27, 2020 549 550 551 starting MAVRIC with some previously calculated quantities are listed in the following section detailing the input options.  Batson Iii, John committed Aug 21, 2020 552 When using MG cross section libraries that do not have flux-to-dose-rate  Batson Iii, John committed Jul 27, 2020 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 conversion factors, use “parm=nodose” to prevent the cross section processing codes from trying to move these values into the working library. MAVRIC creates many files that use the base problem name from the output file. For an output file called “c:\path1\path2\\\ *outputName*.out” or “/home/path1/path2/ *outputName*.inp”, spaces in the output name will cause trouble and should not be used. .. list-table:: Steps in the MAVRIC sequence :name: Mavric-sequence :widths: 100 100 :header-rows: 0 :align: center * - **Cross section calculation** - XSProc is used to calculate the forward cross sections for Monaco * - **Forward Denovo (optional)** - * - Cross section calculation - XSProc is used to calculate the forward cross sections for Denovo * - Forward flux calculation - Denovo calculates the estimate of the forward flux * - **Adjoint Denovo (optional)** - * - Cross section calculation - XSProc is used to calculate the adjoint cross sections for Denovo * - Adjoint flux calculation - Denovo calculates the estimate of the adjoint flux * - **CADIS (optional)** - The scalar flux file from Denovo is then used to create the biased source distribution and transport weight windows * - **Monte Carlo calculation** - Monaco uses the biased source distribution and transport weight windows to calculate the various tallies .. list-table:: Parameters for the MAVRIC command line (“parm=…”) :name: mavric-param :widths: 50 50 :header-rows: 1 :align: center * - Parameter - MAVRIC will stop after * - check - input checking * - forinp - Forward Denovo input construction (makes xkba_b.inp in the tmp area) * - forward - The forward Denovo calculation * - adjinp - Adjoint Denovo input construction (makes xkba_b.inp in the tmp area) * - adjoint - The adjoint Denovo calculation * - impmap - Calculation of importance map and biased source MAVRIC input ------------ The input file for MAVRIC consists of three lines of text (“=mavric” command line with optional parameters, the problem title, and SCALE cross section library name) and then several blocks, with each block starting with “read xxxx” and ending with “end xxxx”. There are three required blocks and nine optional blocks. Material and geometry blocks must be listed first and in the specified order. Other blocks may be listed in any order. Blocks (must be in this order): - Composition – (required) SCALE standard composition, list of materials used in the problem - Celldata – SCALE resonance self-shielding - Geometry – (required) SCALE general geometry description - Array – optional addition to the above geometry description - Volume – optional calculation or listing of region volumes - Plot – create 2D slices of the SGGP geometry  Batson Iii, John committed Aug 21, 2020 633 Other Blocks (in any order, following the blocks listed above):  Batson Iii, John committed Jul 27, 2020 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664  - Definitions – defines locations, response functions, and grid geometries used by other blocks - Sources – (required) description of the particle source spatial, energy, and directional distributions - Tallies – description of what to calculate: point detector tallies, region tallies, or mesh tallies - Parameters – how to perform the simulation (random number seed, how many histories, etc.) - Biasing – data for reducing the variance of the simulation - ImportanceMap – instructions for creating an importance map based on a discrete-ordinates calculation The material blocks (Composition and Celldata) and the physical model blocks (Geometry, Array, Volume, and Plot) follow the standard SCALE format. See the other SCALE references as noted in the following sections for details. The Biasing block and ImportanceMap block cannot both be used. For the other six blocks, scalar variables are set by “keyword=value”, fixed-length arrays are set with “keyword value\ :sub:1 ... value\ :sub:N\ ”, variable-length arrays are set with “keyword value\ :sub:1 ... value\ :sub:N end”, and some text and filenames are read in as quoted strings. Single keywords to set options are also used in some instances. The indention, comment lines, and upper/lowercase shown in this document are not required— they are used in the examples only for clarity. Except for strings in quotes (like filenames), SCALE is case insensitive. After all input blocks are listed, a single line with “end data” should be listed. A final “end” should also be listed, to signify the end of all MAVRIC input.  Batson Iii, John committed Aug 21, 2020 665 666 Nine of the blocks are the same input blocks as those used by the functional module Monaco, with a few extra keywords only for use with MAVRIC. These extra keywords are highlighted here, but  Batson Iii, John committed Jul 27, 2020 667 668 669 without relisting all of the standard Monaco keywords for those blocks. See :numref:input-format for an overview of MAVRIC input file structure.  Batson Iii, John committed Jul 27, 2020 670 671 672 673 674 675 Composition block ~~~~~~~~~~~~~~~~~ Material information input follows the standard SCALE format for material input. Basic materials known to the SCALE library may be used as well as completely user-defined materials (using isotopes with known  Batson Iii, John committed Aug 21, 2020 676 677 cross sections). Input instructions are located in the XSProc chapter (SECTIONREFERENCE) in the SCALE manual. The Standard Composition Library chapter (SECTIONREFERENCE) lists the  Batson Iii, John committed Jul 27, 2020 678 679 680 different cross section libraries and the names of standard materials. An example is as follows:  Batson Iii, John committed Aug 21, 2020 681 .. code:: scale  Batson Iii, John committed Jul 27, 2020 682 683 684 685 686 687 688 689 690 691 692  read composition uo2 1 0.2 293.0 92234 0.0055 92235 3.5 92238 96.4945 end orconcrete 2 1.0 293.0 end ss304 3 1.0 293.0 end end composition  Batson Iii, John committed Aug 21, 2020 693 Details on the cell data block are also included in the XSProc chapter (SECTIONREFERENCE).  Batson Iii, John committed Jul 27, 2020 694 695 696 697 698 699 700 701 702 703 When using different libraries for the importance map production (listed at the top of the input) and the final Monte Carlo calculation (listed in the parameters block, if different), make sure that the materials are present in both libraries. .. list-table:: Overall input format :widths: 30 30 :header-rows: 1 :align: center  Batson Iii, John committed Jul 27, 2020 704  :name: input-format  Batson Iii, John committed Jul 27, 2020 705 706 707  * - input file - Comment  Batson Iii, John committed Aug 21, 2020 708  * - .. code:: scale  Batson Iii, John committed Jul 27, 2020 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750  =mavric Some title for this problem v7-27n19g read composition ... end composition read celldata ... end celldata read geometry ... end geometry read array ... end array read volume ... end volume read plot ... end plot read definitions ... end definitions read sources ... end sources read tallies ... end tallies read parameters ... end parameters read biasing ... end biasing read importanceMap ... end importanceMap end data end  Batson Iii, John committed Jul 27, 2020 751  - .. code:: rest  Batson Iii, John committed Jul 27, 2020 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794  name of sequence title cross section library name SCALE material compositions [required block] SCALE resonance self-shielding [optional block] SCALE SGGP geometry [required block] SCALE SGGP arrays [optional block] SCALE SGGP volume calc [optional block] SGGP Plots [optional block] Definitions [possibly required] Sources definition [required block] Tally specifications [optional block] Monte Carlo parameters [optional block] Biasing information [optional block] Importance map [optional block] end of all blocks end of MAVRIC input  Batson Iii, John committed Jul 27, 2020 795 796 797 SGGP geometry blocks ~~~~~~~~~~~~~~~~~~~~  Batson Iii, John committed Aug 21, 2020 798 799 800 801 802 803 MAVRIC uses the functional module Monaco for the forward Monte Carlo calculation. Monaco tracks particles through the physical geometry described by the SGGP input blocks, as well as through the mesh importance map and any mesh tallies, which are defined in the global coordinates and overlay the physical geometry. Because Monaco must track through all of these geometries at the same time, users should not use the reflective boundary capability in the SGGP geometry.  Batson Iii, John committed Jul 27, 2020 804   Batson Iii, John committed Aug 21, 2020 805 For more details on each SGGP geometry block, see the following sections of the KENO-VI chapter (SECTIONREFERENCE) of the SCALE Manual.  Batson Iii, John committed Jul 27, 2020 806 807 808 809 810 811 812 813 814 815 816 817 818  Geometry – *Geometry Data* Array – *Array Data* Volume – *Volume Data* Plot – *Plot Data* Other blocks shared with Monaco ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The definitions, sources, tallies, and biasing blocks are all the same  Batson Iii, John committed Aug 21, 2020 819 as Monaco. They are all fully described in the Monaco chapter (SECTIONREFERENCE) of the  Batson Iii, John committed Jul 27, 2020 820 821 822 823 824 825 826 827 828 829 SCALE Manual. Definitions – *Definitions Block* Sources – *Sources Block* Tallies – *Tallies Block* Biasing – *Biasing Block*  Batson Iii, John committed Aug 21, 2020 830 831 The parameters block includes several keywords that are not included in Monaco (see the *Parameter Block* section of the Monaco chapter (SECTIONREFERENCE)) which  Batson Iii, John committed Jul 27, 2020 832 are used when the cross section library used in the importance  Batson Iii, John committed Aug 21, 2020 833 calculations differs from the library used in the final forward  Batson Iii, John committed Jul 27, 2020 834 835 836 837 838 839 840 841 842 843 844 845 846 Monaco Monte Carlo calculation. The library listed at the beginning of the MAVRIC input file will be used for the importance calculations (forward and adjoint Denovo calculation, formation of the importance map, and biased sources). To use a different MG library in the final Monaco simulation, use the keyword “library=” with the cross section library name in quotes. A cross section library for Monaco will be made using csas-mg. If there are any extra parameters to use (“parm=” in the “=csas-mg” line of the csas-mg input), they can be passed along using the keyword “parmString=” with the extra information in quotes. For example, the following input file would use a coarse-group library for the importance calculations and a fine-group library for the final Monaco, each with CENTRM processing.  Batson Iii, John committed Aug 21, 2020 847 .. code:: scale  Batson Iii, John committed Jul 27, 2020 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867  =mavric parm=centrm v7-27n19g … read parameters library=”v7-200n47g” parmString=”centrm” … end parameters … end data end  Batson Iii, John committed Aug 21, 2020 868 869 870 To use a CE cross section in the final Monaco step, use the keyword “ceLibrary=” with the cross section library name in quotes. When the “library=” or “ceLibrary=” keywords are used, they should precede the “neutron”, “photon”, “noNeutron”, and “noPhoton” keywords. :numref:extra-keywords summarizes all of the keywords in the MAVRIC parameter block.  Batson Iii, John committed Jul 27, 2020 871   Batson Iii, John committed Aug 21, 2020 872 873 874 875 When using two different cross section libraries, be sure that the responses and distributions are defined in ways that do not depend on the cross section library. For example, any response that is just a list of n values (corresponding to a cross section library of n groups) needs to have the group energies specifically listed so that it can be evaluated properly on the other group structure.  Batson Iii, John committed Jul 27, 2020 876   Batson Iii, John committed Aug 21, 2020 877 878 .. list-table:: Extra keywords for the parameters block :align: center  Batson Iii, John committed Jul 27, 2020 879 880  :name: extra-keywords  Batson Iii committed Nov 03, 2020 881  * - .. image:: figs/MAVRIC/table4.4.png  Batson Iii, John committed Aug 21, 2020 882   Batson Iii, John committed Jul 27, 2020 883 884 885 Importance map block ~~~~~~~~~~~~~~~~~~~~  Batson Iii, John committed Aug 21, 2020 886 887 888 889 890 891 892 The importance map block is the “heart and soul” of MAVRIC. This block lists the parameters for creating an importance map and biased source from one (adjoint) or two (forward, followed by adjoint) Denovo discrete-ordinates calculations. Without an importance map block, MAVRIC can be used to run Monaco and use its conventional types of variance reduction. If both the importance map and biasing blocks are specified, then only the importance map block will be used. The various ways to use the importance map block are explained in the subsections below. Keywords for this block are summarized at the end of this section, in :numref:keywords-importance.  Batson Iii, John committed Jul 27, 2020 893 894 895 896  Constructing a mesh for the S\ :sub:N calculation ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  Batson Iii, John committed Aug 21, 2020 897 All uses of the importance map block that run the  Batson Iii, John committed Jul 27, 2020 898 899 900 901 902 903 904 discrete-ordinates code require the use of a grid geometry that overlays the physical geometry. Grid geometries are defined in the definitions block of the MAVRIC input. The extent and level of detail needed in a grid geometry are discussed in the following paragraphs. When using S\ :sub:N methods alone for solving radiation transport in shielding problems, a good rule of thumb is to use mesh cell sizes on  Batson Iii, John committed Aug 21, 2020 905 the order of a meanfree path of the particle. In complex shielding  Batson Iii, John committed Jul 27, 2020 906 907 908 909 910 911 912 913 914 915 problems, this could lead to an extremely large number of mesh cells, especially when considering the size of the meanfree path of the lowest energy neutrons and photons in common shielding materials. In MAVRIC, the goal is to use the S\ :sub:N calculation for a quick approximate solution. Accuracy is not paramount—just getting an idea of the overall shape of the true importance map will help accelerate the convergence of the forward Monte Carlo calculation. The more accurate the importance map, the better the forward Monte Carlo acceleration will be. At some point there is a time trade-off when the computational time  Batson Iii, John committed Aug 21, 2020 916 for calculating the importance map followed by the time to perform the Monte Carlo  Batson Iii, John committed Jul 27, 2020 917 calculation exceeds that of a standard analog Monte Carlo calculation.  Batson Iii, John committed Aug 21, 2020 918 Large numbers of mesh cells that result from using very small mesh sizes  Batson Iii, John committed Jul 27, 2020 919 920 921 922 923 924 925 926 927 for S\ :sub:N calculations also use a great deal of computer memory. Because the deterministic solution(s) for CADIS and FW-CADIS can have moderate fidelity and still provide variance reduction parameters that substantially accelerate the Monte Carlo solution, mesh cell sizes in MAVRIC applications can be larger than what most S\ :sub:N practioners would typically use. The use of relatively coarse mesh reduces memory requirements and the run time of the deterministic solution(s). Some general guidelines to keep in mind when creating a mesh for the  Batson Iii, John committed Aug 21, 2020 928 importance map/biased source are as follows:  Batson Iii, John committed Jul 27, 2020 929 930 931 932  - The true source regions should be included in the mesh with mesh planes at their boundaries.  Batson Iii, John committed Aug 21, 2020 933 - Place point or very small sources in the center of a mesh cell, not on the mesh planes.  Batson Iii, John committed Jul 27, 2020 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951  - Any region of the geometry where particles could eventually contribute to the tallies (the “important” areas) should be included in the mesh. - Point adjoint sources (corresponding to point detector locations) in standard CADIS calculations do not have to be included inside the mesh. For FW-CADIS, they must be in the mesh and should be located at a mesh cell center, not on any of the mesh planes. - Volumetric adjoint sources should be included in the mesh with mesh planes at their boundaries. - Mesh planes should be placed at significant material boundaries. - Neighboring cell sizes should not be drastically different. - Smaller cell sizes should be used where the adjoint flux is changing  Batson Iii, John committed Aug 21, 2020 952 953  rapidly, such as toward the surfaces of adjoint sources and shields (rather than in their interiors).  Batson Iii, John committed Jul 27, 2020 954 955  Another aspect to keep in mind is that the source in the forward Monaco  Batson Iii, John committed Aug 21, 2020 956 Monte Carlo calculation will be a biased mesh-based source. Source  Batson Iii, John committed Jul 27, 2020 957 958 959 960 961 962 963 964 particles will be selected by first sampling which mesh cell to use and then sampling a position uniformly within that mesh cell that meets the user criteria of “unit=”, “region=”, or “mixture=” if specified. The mesh should have enough resolution that the mesh source will be an accurate representation of the true source. The geometry for the Denovo calculation is specified using the keyword “gridGeometryID=” and the identification number of a grid geometry that  Batson Iii, John committed Aug 21, 2020 965 966 967 968 969 was defined in the definitions block. The material assigned to each voxel of the mesh is determined by testing the center point in the SGGP geometry (unless the macro-material option is used—see below). .. _macromaterials:  Batson Iii, John committed Jul 27, 2020 970 971 972 973 974 975 976 977 978 979 980 981  Macromaterials for S\ :sub:N geometries ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Part of the advantage of the CADIS method is that the adjoint discrete-ordinates calculation only needs to be approximate in order to form a reasonable importance map and biased source. This usually means that the mesh used is much coarser than the mesh that would be used if the problem were to be solved only with a discrete-ordinates code. This coarse mesh may miss significant details (especially curves) in the geometry and produce a less-than-optimal importance map.  Batson Iii, John committed Aug 21, 2020 982 To get more accurate solutions from a coarse-mesh  Batson Iii, John committed Jul 27, 2020 983 984 discrete-ordinates calculation, Denovo can represent the material in each voxel of the mesh as a volume-weighted mixture of the real  Batson Iii, John committed Aug 21, 2020 985 materials, called *macromaterials*, in the problem. When constructing the  Batson Iii, John committed Jul 27, 2020 986 Denovo input, the Denovo EigenValue Calculation (DEVC, see section SECTIONREFERENCE)  Batson Iii, John committed Aug 21, 2020 987 sequence can estimate the volume fraction occupied by using each real  Batson Iii, John committed Jul 27, 2020 988 989 990 991 material in each voxel by a sampling method. The user can specify parameters for how to sample the geometry. Note that finer sampling makes more accurate estimates of the material fraction but requires more setup time to create the Denovo input. Users should understand how the  Batson Iii, John committed Aug 21, 2020 992 macromaterials are sampled and should consider this when constructing a mesh  Batson Iii, John committed Jul 27, 2020 993 994 995 996 997 grid. This is especially important for geometries that contain arrays. Careful consideration should be given when overlaying a mesh on a geometry that contains arrays of arrays. Because the list of macromaterials could become large, the user can also  Batson Iii, John committed Aug 21, 2020 998 specify a tolerance for how close two different macromaterials can be in order to  Batson Iii, John committed Jul 27, 2020 999 1000 be considered the same, thereby reducing the total number of macromaterials. The macromaterial tolerance, “mmTolerance=”, is used for  Batson Iii, John committed Aug 21, 2020 1001 creating a different macromaterial from the those already created by  Batson Iii, John committed Jul 27, 2020 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 looking at the infinity norm between two macromaterials. The number of macromaterials does not appreciably impact Denovo run time or memory requirements. Two different sampling methods are available—point testing :cite:ibrahim_improving_2009 with the keyword mmPointTest and ray tracing :cite:johnson_fast_2013 with the keyword mmRayTest. Ray Tracing '''''''''''  Batson Iii, John committed Aug 21, 2020 1013 1014 1015 1016 1017 1018 1019 1020 1021 This method estimates the volume of different materials in the Denovo mesh grid elements by tracing rays through the SGGP geometry and computing the average track lengths through each material. Rays are traced in all three dimensions to better estimate the volume fractions of materials within each voxel. The mmSubCell parameter controls how many rays will be traced in each voxel in each dimension. For example, if mmSubCell= n, then when tracing rays in the z dimension, each column of voxels uses a set of n×n rays starting uniformly spaced in the x and y dimensions. With rays being cast from all three orthogonal directions, a total of 3n2 rays are used to sample each voxel. One can think of subcells as an equally spaced sub-mesh with a single ray positioned at each center. The number of subcells in each direction, and hence the number of rays, can be explicitly given with mmSubCells ny nz nx nz nx ny end keyword for rays parallel to the x axis, y axis, and z axis.  Batson Iii, John committed Jul 27, 2020 1022 1023 1024 1025 :numref:ray-positions shows different subcell configurations (in two dimensions) for a given voxel. .. _ray-positions:  Batson Iii committed Nov 03, 2020 1026 .. figure:: figs/MAVRIC/fig4.1.01_rayTrace6.png  Batson Iii, John committed Jul 27, 2020 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037  :width: 500 :align: center Ray positions within a voxel with different mmSubCells parameters. Ray tracing is a more robust method compared to the simple point testing method used in previous versions of SCALE/MAVRIC; however, it requires more memory than point testing. Ray tracing gives more accurate estimates of volume fractions because track lengths across a voxel give more information than a series of test points. Ray tracing is also much faster than point testing because the particle tracking routines are  Batson Iii, John committed Aug 21, 2020 1038 optimized to quickly determine lists of materials and distance along  Batson Iii, John committed Jul 27, 2020 1039 1040 1041 a given ray. Ray tracing operates on the grid geometry supplied by the user and  Batson Iii, John committed Aug 21, 2020 1042 shoots rays in all three directions, starting from the lower bounds of  Batson Iii, John committed Jul 27, 2020 1043 1044 1045 1046 1047 1048 1049 the mesh grid. An example of an arbitrary assembly geometry is shown in :numref:geom-model. A ray consists of a number of steps that each correspond to crossing a material boundary along the path of the ray. Ratios of each step’s length to the voxel length in the ray’s direction determine the material volume fraction of that step in that voxel, and summation of the same material volume fractions gives the material volume fraction of that material in that voxel. Ray tracing through a single voxel that  Batson Iii, John committed Jul 28, 2020 1050 contains a fuel pin is illustrated in :numref:ray-vox.  Batson Iii, John committed Jul 27, 2020 1051 1052 1053  .. _geom-model:  Batson Iii committed Nov 03, 2020 1054 .. figure:: figs/MAVRIC/fig4.1.02_kenoDenovo.png  Batson Iii, John committed Jul 27, 2020 1055 1056 1057 1058  :width: 600 :align: center Geometry model (left) and the Denovo representation (right) of an assembly using macromaterials determined by ray tracing.  Batson Iii, John committed Jul 28, 2020 1059 1060 1061  .. _ray-vox:  Batson Iii committed Nov 03, 2020 1062 .. figure:: figs/MAVRIC/fig4.1.03_rayTrace.png  Batson Iii, John committed Aug 21, 2020 1063  :width: 300  Batson Iii, John committed Jul 28, 2020 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075  :align: center Ray tracing (in two dimensions) through a voxel. The final constructed macromaterials for this model are also shown in :numref:geom-model. Voxels that contain only a single material are assigned the original material number in the constructed macromaterials. For the voxels that contain a fuel pin with three different materials, the result is a new macromaterial consisting of the volume weighted fractions of each original material. After the rays are shot in all three directions, the material volume  Batson Iii, John committed Aug 21, 2020 1076 fractions are updated, and macromaterials are created by using these  Batson Iii, John committed Jul 28, 2020 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 material volume fractions. Material volume fraction calculations for a single voxel, as shown in :numref:ray-vox, are given by .. math:: :label: mavric-18 F_{m} = \ \sum_{d = x,y,z}^{}{\sum_{r = 1}^{N_{r}}{\sum_{s = 1}^{N_{s}}\left\{ \begin{matrix} \frac{L_{d,r,s}}{L_{d}},\ \ \ & m_{s} = m \\ 0,\ \ \ & \mathrm{\text{otherwise}} \\ \end{matrix} \right.\ }} \ \ \ \ \ \ \ and \ \ \ \ \ \ \ \ \ V_{m} = \frac{F_{m}}{\sum_{n = 1}^{N_{m}}F_{n}}\ , where *F\ m* = sampled fraction of material *m* in the voxel, *d* = direction of the rays (*x, y, z*), *r* = ray number, :math:N_r = total number of rays in the voxel for direction of *d*, *s* = step number, :math:N_s = total number of steps for ray r in the voxel for direction of *d*, :math:L_{d,r,s} = length of the steps s for ray r in the voxel for direction of *d*, :math:L_d = length of the voxel along direction of *d*, :math:m_s = material of step *s*, *m* = material number, :math:N_m = total number of materials in the voxel, and :math:V_m = volume fraction of material m in the voxel. Point Testing ''''''''''''' The recursive bisection method is utilized in point testing and uses a series of point tests to determine the macromaterial fractions. For a given voxel, the material at the center is compared to the material at  Batson Iii, John committed Aug 21, 2020 1120 1121 the eight corners. If they are all the same, then the entire volume is considered to be made of that material. If they are different, then the volume is  Batson Iii, John committed Jul 28, 2020 1122 1123 1124 1125 1126 1127 1128 1129 1130 divided into two in each dimension. Each subvolume is tested, and the method is then applied to the subvolumes that are not of a single material. When the ratio of the volume of the tested region to the original voxel becomes less than a user-specified tolerance (in the range of 10-1 to 10-4), then further subdivision and testing are stopped. This is illustrated in :numref:rec-macro.  Batson Iii, John committed Aug 21, 2020 1131 .. _rec-macro:  Batson Iii committed Nov 03, 2020 1132 .. figure:: figs/MAVRIC/rec-macro.png  Batson Iii, John committed Aug 21, 2020 1133  :width: 99 %  Batson Iii, John committed Jul 28, 2020 1134 1135 1136 1137 1138   Batson Iii, John committed Aug 21, 2020 1139 .. centered:: *Fig. 4 Successive steps in the recursive macromaterial method*  Batson Iii, John committed Jul 28, 2020 1140   Batson Iii, John committed Aug 21, 2020 1141 In point testing, the keyword “mmTolerance=f” is interpreted to be where *f* is the smallest  Batson Iii, John committed Jul 28, 2020 1142 fraction of the voxel volume that can be achieved by bisection method and hence the limiting  Batson Iii, John committed Aug 21, 2020 1143 factor for dividing the voxel. This same tolerance *f* is also used to limit the number of macromaterials.  Batson Iii, John committed Jul 28, 2020 1144 1145 Before a new macromaterial is created, if one already exists where the fraction of each actual material matches to within the given tolerance, then the existing material will be used. If  Batson Iii, John committed Aug 21, 2020 1146 using only a single point at the center of each voxel, then use “mmTolerance=1”.  Batson Iii, John committed Jul 28, 2020 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 The mmSubCell keyword is not used in point testing. Example ''''''' :numref:cask-geom shows an example of a cask geometry with two types of spent fuel (yellows), steel (blue), resin (green), and other metals (gray). When the Denovo geometry is set up by testing only the center of each mesh cell, the curved surfaces are not well represented (upper right). By applying the ray-tracing method and defining a new material made of partial fractions of the original materials, an improved Denovo model can be made. In the lower left of the figure, the Denovo model was constructed using one ray (in each dimension) per voxel and a tolerance of 0.1. This gives 20 new materials that are a mixture of the original 13 actual materials and void. With mmSubCells=3 and an mmTolerance=0.01, 139 macromaterials are created. A macromaterial table listing the fractions of each macromaterial is saved to a file called “outputName.mmt”, where outputName is the name the user chose for his or her output file. This file can be used by the Mesh File Viewer to display the macromaterials as mixtures of the actual materials, as seen in the lower row of :numref:cask-geom. See the Mesh File Viewer help pages for more information on how to use colormap files and macromaterial tables.  Batson Iii, John committed Aug 21, 2020 1167 .. _cask-geom:  Batson Iii committed Nov 03, 2020 1168 .. figure:: figs/MAVRIC/cask-geom.png  Batson Iii, John committed Jul 28, 2020 1169   Batson Iii, John committed Aug 21, 2020 1170  Cask geometry model (upper left) and the Denovo representation using cell center testing (upper right). Representations using macromaterials determined by ray tracing are shown for mmSubCell=1/mmTolerance=0.1 (lower left) and mmSubCell=3/mmTolerance=0.01 (lower right).*  Batson Iii, John committed Jul 28, 2020 1171 1172 1173 1174  Optimizing source/detector problems ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  Batson Iii, John committed Aug 21, 2020 1175 For standard source/detector problems in which one tally is to be optimized  Batson Iii, John committed Jul 28, 2020 1176 in the forward Monte Carlo calculation, an adjoint source based on that  Batson Iii, John committed Aug 21, 2020 1177 tally must be constructed. An adjoint source requires a unique and  Batson Iii, John committed Jul 28, 2020 1178 1179 1180 1181 1182 positive identification number, a physical location, and an energy spectrum. The adjoint source location can be specified either by (1) a point location (“locationID=” keyword) or (2) a volume described by a box (“boundingBox” array). A bounding box is specified by maximum and minimum extent in each dimension—\ :math:x_{max} :math:x_{min} :math:y_{max} :math:y_{min} :math:z_{max}  Batson Iii, John committed Aug 21, 2020 1183 :math:z_{min}—in global coordinates. The boundingBox should not be degenerate  Batson Iii, John committed Jul 28, 2020 1184 1185 1186 (should have volume>0) but can be optionally limited to areas matching a given unit number (“unit=”), a given region number (“region=”), or a given material mixture number (“mixture=”). A mixture and a region  Batson Iii, John committed Aug 21, 2020 1187 cannot both be specified, since that would either be redundant or  Batson Iii, John committed Jul 28, 2020 1188 1189 1190 1191 1192 1193 1194 1195 1196 mutually exclusive. The energy spectrum of an adjoint source is a response function (“responseID=”) listing one of the ID numbers of the responses defined in the definitions block. An optional weight can be assigned to each adjoint source using the “weight=” keyword. If not given, the default weight is 1.0. For example, to optimize a region tally, the user would construct an adjoint source located in the same place as the tally, with an adjoint source spectrum equal to the response function that the tally is  Batson Iii, John committed Aug 21, 2020 1197 computing. Note that the grid geometry 1 and response function 3 must  Batson Iii, John committed Jul 28, 2020 1198 1199 already be defined in the definitions block.  Batson Iii, John committed Aug 21, 2020 1200 .. code:: scale  Batson Iii, John committed Jul 28, 2020 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213  read importanceMap gridGeometryID=1 adjointSource 24 boundingBox 12.0 10.0 5.0 -5.0 10.0 -10.0 unit=1 region=5 responseID=3 end adjointSource end importanceMap For optimizing a point detector for the calculation of total photon flux, the importance map block would look like the following:  Batson Iii, John committed Aug 21, 2020 1214 .. code:: scale  Batson Iii, John committed Jul 28, 2020 1215 1216 1217 1218 1219 1220 1221 1222 1223  read importanceMap adjointSource 21 locationID=4 responseID=1 end adjointSource gridGeometryID=1 end importanceMap  Batson Iii, John committed Aug 21, 2020 1224 where location 4 is the same location used by the point detector. To calculate total photon flux, response function 1 must be defined in the definitions block similar to this response:  Batson Iii, John committed Jul 28, 2020 1225   Batson Iii, John committed Aug 21, 2020 1226 .. code:: scale  Batson Iii, John committed Jul 28, 2020 1227 1228 1229 1230 1231 1232 1233 1234 1235  read definitions response 1 values 27r0.0 19r1. end end response … end definitions  Batson Iii, John committed Aug 21, 2020 1236 This response is used for computing total photon flux for the 27 neutron/19 photon group coupled cross section library or like this response  Batson Iii, John committed Jul 28, 2020 1237   Batson Iii, John committed Aug 21, 2020 1238 .. code:: scale  Batson Iii, John committed Jul 28, 2020 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248  read definitions response 1 photon bounds 1000.0 2.0e7 end values 1.0 1.0 end end response … end definitions  Batson Iii, John committed Aug 21, 2020 1249 which is independent of the cross section library.  Batson Iii, John committed Jul 28, 2020 1250 1251 1252 1253  Multiple adjoint sources ^^^^^^^^^^^^^^^^^^^^^^^^  Batson Iii, John committed Aug 21, 2020 1254 If there are several tallies in very close proximity and/or several different responses being calculated by the tallies, multiple adjoint sources can be used.  Batson Iii, John committed Jul 28, 2020 1255   Batson Iii, John committed Aug 21, 2020 1256 .. code:: scale  Batson Iii, John committed Jul 28, 2020 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282  read importanceMap gridGeometryID=1 adjointSource 1 locationID=4 responseID=20 end adjointSource adjointSource 2 locationID=5 responseID=21 weight=2.0 end adjointSource end importanceMap Note that adjoint sources using point locations can be mixed with volumetric adjoint sources (using bounding boxes). Options for Denovo :math:S_n calculations ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ While the default values for various calculational parameters and settings used by Denovo for the MAVRIC sequence should cover most applications, they can be changed if desired. The two most basic parameters are the quadrature set used for the discrete ordinates and the order of the Legendre polynomials used in describing the angular scattering. The default quadrature order that MAVRIC uses is a level symmetric :math:S_8 set, and the default scattering order is :math:P_3 (or the maximum number of coefficients contained in the cross-section library if less than 3). :math:S_8/ :math:P_3 is an adequate choice for many applications, but the user is free to changes these. For complex ducts or transport over large distances at small angles, :math:S_{12} may be required. :math:S_4/ :math:P_1 or even :math:S_2/ :math:P_0 would be useful in doing a very cursory run to confirm that the  Batson Iii, John committed Aug 21, 2020 1283 problem was input correctly, but this would likely be inadequate for weight window generation in a problem  Batson Iii, John committed Jul 28, 2020 1284 1285 that is complex enough to require advanced variance reduction.  Batson Iii, John committed Aug 21, 2020 1286 These and other Denovo options are applied to both  Batson Iii, John committed Jul 28, 2020 1287 1288 1289 1290 1291 1292 the forward and the adjoint calculations that are required from the inputs given in the importance map block. In problems with small sources or media that are not highly scattering, discrete ordinates can suffer from "ray effects" :cite:lathrop_ray_1968,lathrop_remedies_1971 where artifacts of the discrete quadrature directions can be seen in the  Batson Iii, John committed Aug 21, 2020 1293 computed fluxes. Denovo has a  Batson Iii, John committed Jul 28, 2020 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 first-collision capability to help alleviate ray effects. This method computes the uncollided flux in each mesh cell from a point source. The uncollided fluxes are then used as a distributed source in the main discrete-ordinates solution. At the end of the main calculation, the uncollided fluxes are added to the fluxes computed with the first collision source, forming the total flux. While this helps reduce ray effects in many problems, the first-collision capability can take a significant amount of time to compute on a mesh with many cells or for many point sources. Adjoint sources that use point locations will automatically use the Denovo first-collision capability. Volumetric adjoint sources (that use a boundingBox) will be treated without the first-collision capability. The keywords “firstCollision” and “noFirstCollision” will be ignored by MAVRIC for adjoint calculations. Keywords for Denovo options in the importance map block are summarized at the end of this section, in :numref:denovo-op. Starting with an existing adjoint flux file ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ An importance map can be made from an existing Denovo flux file by using the keyword “adjointFluxes=” with the appropriate file name in quotes. The file must be a binary file using the \*.dff file format, and the number of groups must match the number of groups in the MAVRIC cross section library (i.e., the library entered on the third line of the MAVRIC input file). Instead of performing an adjoint calculation, the fluxes read from the file will be used to create both the mesh-based importance map and the biased mesh source.  Batson Iii, John committed Aug 21, 2020 1324 .. code:: scale  Batson Iii, John committed Jul 28, 2020 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340  read importanceMap adjointFluxes=”c:\mydocu~1\previousRun.adjoint.dff” gridGeometry=7 end importanceMap If the “adjointFluxes=” keyword is used and any adjoint sources are defined, an error will result. If a forward flux file is supplied for forward-weighting the adjoint source (see below), then an adjoint flux file cannot be specified. The grid geometry is not required when using a pre-existing flux file. If grid geometry is not supplied, one will be created from the mesh planes that are contained in the Denovo flux file (which were used to compute the fluxes in that file). Forward-weighting the adjoint source ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ To optimize a mesh tally or multiple region tallies/point detector tallies over a large region, instead of a uniform weighting of the adjoint source, a weighting based on the inverse of the forward response  Batson Iii, John committed Aug 21, 2020 1341 can be performed. This requires an extra discrete-ordinates calculation but  Batson Iii, John committed Jul 28, 2020 1342 1343 1344 1345 can help the forward Monte Carlo calculation compute the mesh tally or group of tallies with more uniform statistical uncertainties. The same grid geometry will be used in both the forward calculation and  Batson Iii, John committed Aug 21, 2020 1346 the adjoint calculation, so the user must ensure that the mesh  Batson Iii, John committed Jul 28, 2020 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 covers all of the forward sources and all of the adjoint sources, even if they are point sources. To use forward-weighted CADIS, specify either of the keywords – “respWeighting” or “fluxWeighting”. For either, MAVRIC will run Denovo to create an estimate of the forward flux, :math:\phi\left( \overrightarrow{r},E \right). For response weighting (“respWeighting”), each adjoint source is inversely weighted by the integral of the product of the response function used in that adjoint source and the estimate of the forward flux. For an adjoint source described by the geometric function :math:g(\overrightarrow{r}) and the response function :math:\sigma_{d}\left( E \right) (note that :math:\sigma_{d}\left( E \right) = 1 for computing total fluxes), the forward-weighted adjoint source becomes .. math:: :label: mavric-19 q_{i}^{+}\left( \overrightarrow{r},E \right) = \frac{\sigma_{d}\left( E \right)g(\overrightarrow{r})}{\int_{}^{}{\sigma_{d}\left( E \right)\ \phi\left( \overrightarrow{r},E \right)}\ \text{dE}} \ \ . Response weighting will calculate more uniform relative uncertainties of the integral quantities of the tallies in the final Monte Carlo calculation. To optimize the calculation of the entire group-wise flux with more uniform relative uncertainties in each group, the adjoint source should be weighted inversely by the forward flux, :math:\phi\left( \overrightarrow{r},E \right), using the “fluxWeighting” keyword. For an adjoint source described by the geometric function :math:g(\overrightarrow{r}) and the response function :math:\sigma_{d}\left( E \right) = 1, the forward-weighted adjoint source becomes .. math:: :label: mavric-20 q_{i}^{+}\left( \overrightarrow{r},E \right) = \frac{\sigma_{d}\left( E \right)g(\overrightarrow{r})}{\phi\left( \overrightarrow{r},E \right)}\ . For example, consider a problem with a single source and two detectors, one near the source that measures flux and one far from the source that measures some response. In a standard Monte Carlo calculation, it is expected that since more Monte Carlo particles cross the near detector, it will have a much lower relative uncertainty than the far detector. Standard CADIS could be used to optimize the calculation of each in separate simulations: .. list-table:: * - To optimize the flux in the near detector - To optimize the response in the far detector  Batson Iii, John committed Aug 21, 2020 1402  * - .. code:: scale  Batson Iii, John committed Jul 28, 2020 1403 1404 1405 1406 1407 1408 1409 1410 1411  read importanceMap gridGeometryID=1 adjointSource 1 boundingBox x1 x2 y1 y2 z1 z2 responseID=1 end adjointSource end importanceMap  Batson Iii, John committed Aug 21, 2020 1412  - .. code:: scale  Batson Iii, John committed Jul 28, 2020 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424  read importanceMap gridGeometryID=1 adjointSource 2 boundingBox u1 u2 v1 v2 w1 w2 responseID=6 end adjointSource end importanceMap where response 1 was defined as :math:\sigma_{1}\left( E \right) = 1 and response 6 was defined as :math:\sigma_{6}\left( E \right) = flux-to-response conversion factors. The two options for  Batson Iii, John committed Aug 21, 2020 1425 forward weighting allow the tallies for both detectors to be calculated  Batson Iii, John committed Jul 28, 2020 1426 1427 in the same MAVRIC simulation. Using “fluxWeighting”, the importance map and biased source will be made to help distribute Monte Carlo particles  Batson Iii, John committed Aug 21, 2020 1428 evenly through each energy group and every voxel in both detectors,  Batson Iii, John committed Jul 28, 2020 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 making the relative uncertainties close to uniform. With “respWeighting”, the importance map and biased source will optimize the total integrated response of each tally. .. list-table:: * - To optimize :math:\phi\left( \overrightarrow{r},E \right) in each detector - To optimize a total response :math:\int_{}^{}{\sigma_{d}\left ( E \right) \phi \left( \overrightarrow{r},E \right)} dE (either total flux or total dose)  Batson Iii, John committed Aug 21, 2020 1439  * - .. code:: scale  Batson Iii, John committed Jul 28, 2020 1440 1441 1442