openmc
openmc copied to clipboard
Delta tracking
At some point, it would be nice to have the capability to do delta tracking. Jaakko Leppanen has found that delta tracking speeds up certain problems greatly (those with high mfp?).
Any news on this? I recently ran some single LWR assembly calculations in OpenMC and found them to be about 50% slower than Serpent 2 both using 4 cores.
Hi, @gridley. I can't speak with certainty for all of the developers, but I don't think there have been any recent major attempts to implement delta tracking. I think most of us believe that tracking isn't the biggest concern at the moment for runtime. The problems that are most painful for us are those with tons of nuclides (i.e. depletion) or tons of tallies (depletion or detailed MGXS). So currently those are the two biggest areas we're focusing on.
Also I should mention that if you're looking for a speedup in terms of tracking, it's worth trying to define your geometry in a couple of different ways. Complex cells (cells that use the ~
or |
operators in their region specification) can significantly slow a calculation down. OpenMC will also slow down a lot if you have one surface that is used by many cells. This can happen, for example, if you cut a fuel pin into 100 axial cells and each uses the same ZCylinder for the outer radius; and you'll see a big speedup if you instead use lattices to do the axial cuts.
Thanks for the lightning-fast response @smharper. This geometry did only include an axially infinite pin lattice, so no fancy complements here. It makes sense that other topics would take priority in speeding calculations up.
@gridley If you're willing to share models, one of us can take a peek to see if there's anything obvious that is hurting performance.
Hey @paulromano, thanks. The OpenMC model is here and the Serpent model to match is here.
Seems that Serpent takes 30 s but OpenMC 45 s.
I note that you don't have equivalent boundary conditions in both codes, Serpent should be BC 2 to match your reflective condition in OpenMC. Or OpenMC should be 'periodic' to match Serpents BC 3. I dont know if this is the cause in the runtime difference, but you arent comparing apples to apples.
Delta tracking will be useful for TRISO modeling. We've found that for an HTGR core, with random-TRISO, a roughly 6x runtime for OpenMC vs. Serpent.