openmc-dev / openmc

OpenMC Monte Carlo Code
https://docs.openmc.org
Other
728 stars 464 forks source link

Feature: Pass fission source between depletion steps #1615

Open drewejohnson opened 4 years ago

drewejohnson commented 4 years ago

When running successive transport simulations for depletion, OpenMC currently starts each new solution with a "fresh" fission source, either uniformly distributed or defined by the user. It could be advantageous to use the fission source from the previous transport solution as the initial guess. If the depletion step is small enough, the source might not change dramatically between steps and thus you could reduce the number of inactive cycles at later points. This was inspired by a similar Serpent setting that allows just this behavior.

With respect to the implementation, we already modify the particles setting when using the SIE integrator https://github.com/openmc-dev/openmc/blob/10402760fe3f4906d081ae8bb6d6653163a045bc/openmc/deplete/abc.py#L982-L986 so I feel pretty confident we could do the same with settings.inactive

I'm not sure where the best place to put the fission source passing though. One place to look would be during Operator.__call__, where we prep OpenMC for a new simulation https://github.com/openmc-dev/openmc/blob/ac8dd925d4da711c6611601da45a1f78af1db996/openmc/deplete/operator.py#L292-L295

The sticky point is how simply provide this feature without having the user turn it on both for the Operator and the Integrator. If we define the setting on the Operator, we can pass an argument to openmc.lib.reset indicating the fission source should not be wiped. Then the Integrator can look at the settings and determine, for later steps, how to adjust the inactive cycles. If at all.

We can also have openmc dump the source to a file, and then read that back in for the later steps. Probably not super ideal, but a quick first pass.

paulromano commented 4 years ago

Just wanted to add that this general feature (ability to use source from previous simulation for another one) would be advantageous for multiphysics coupling as well.