openmc icon indicating copy to clipboard operation
openmc copied to clipboard

`IndependentOperator` hotfix

Open yardasol opened this issue 3 years ago • 0 comments

This PR is a hotfix for IndependentOperator functionality. While doing more extensive testing and after extensive discussion with @paulromano , we discovered there was an implementation error: we were multiplying the fission cross sections by material volume and nuclide density in the inner normalization helper _IndependentNormalizationHelper, but this was already being done in _IndependentRateHelper, hence we were obtaining results that were way off of what they should been relative to a coupled case.

We also found that the first-step results for fission yield nuclides were behaving as if there were no reaction rates for those nuclides, which made the first-step results very difference from the transport-coupled case. This is due to the fact that dilute_initial for TransportOperator is not user-accessible and is 0 by default.

This could have been prevented if a more robust regression test were present, so I have also added additional functionality to test results from a transport-coupled depletion calculation and a transport-independent depletion calculation over several timestep sizes.

@paulromano and I also independently discovered a bug in Results.export_to_materials() that was causing some errors in a validation study for transport-independent depletion. The implementation in this PR is his.

Specifically, this PR:

  • Adds the dilute_initial parameter to TransportOperator
  • Removes the _IndependentRateHelper inner class from TransportOperator
  • Updates and overhauls the depletion_no_transport regression test
  • Fixes a bug in Results.export_to_materials() that was causing some of the nuclides in the resulting Materials object to have different units on their compositions.
  • Shoehorned in: minor docstring and docpage spelling and grammar fixes

yardasol avatar Aug 10 '22 02:08 yardasol