Hey all,
I finally reached a point where I can call my research `done*', working and useful to others. For those who don't know, I was working on improving the efficiency of tallying multi-group cross-sections to allow MC to be used to get around the assumptions present in the variants of slowing down theory typically used to generate MGXS libraries.
To do that I wrote an ACE pre-processor code called NDPP (Nuclear Data Pre-Processor). This code has similar functionality to NJOY's GROUPR module, though it does not perform the flux-weighting, it stops short of that such that the Monte Carlo code can do that. So NDPP writes a file, similar to ACE, which the Monte Carlo code loads in to memory for use during tallies. I then have a branch of OpenMC sitting in my repo which knows how to load these NDPP libraries and uses them for tallying.
The method is only useful for data which has outgoing distribution information. So that means the quantities like fission energy spectra, the scattering moment matrices, and photon production from (g,n) reactions. Right now NDPP/OpenMC only handle the fission spectra and scattering moment matrices.
Anyways, the method works and it works quite well. See the attached figure. In this figure, I ran a UO2 pin cell in OpenMC, instrumented it with tallies using NDPP data and the traditional tallying scheme, created multi-group libraries at given active batch counts (the dots) and then ran those libraries with a deterministic transport solver (MPACT). The lines show the pcm error between MPACT (w/ P2 scattering) and the OpenMC eigenvalue (at that statepoint) for both the traditional means of tallying data (Direct-Pn) and the NDPP-based data for chi and scatter-pn data. As you can see, the NDPP-Pn+NDPP-Chi line is almost instantly converged, NDPP-Pn and analog-Chi is in 2nd place, and Direct-Pn takes significantly larger to converge. I don't have figure-of-merit plots made yet, but its like a 1-3 order of magnitude improvement depending on the particular group and scattering order.
Ok, so with that being said, NDPP is available at
www.github.com/ndpp/ndpp and my OpenMC branch is forked from the harmonics branch which a PR is based off of (I needed the nu-scatter-PN functionality that PR brings). My questions for you guys are: 1) are you interested in me submitting upstream, and 2) if so, when is a good time to do so? I would imagine after 0.6 comes out is a good time since we are coming up on that milestone anyways.
Thanks!
Adam
* It's never actually done, of course