Could anyone suggest a good way to calculate the fission matrix from an OpenMC run? I’m sure it can be done I just don’t know what would be the best way to approach it. Computational speed is not really an issue and it could also be based on post processing of data. I would appreciate any tips.
You can easily compute the fission matrix for any arbitrary energy group structure in OpenMC. In summary, you need a tally with “energy” and “energyout” filters for your desired group structure. Since the tally must contain an “energyout” filter, it must use an “analog” tally estimator. The following is an example of the code you would need to specify a tally for a 2-group global fission matrix in the “tallies.xml” input file for OpenMC:
nu-fission analog
This may alternatively be generated using our Python API as follows:
This tally will result in a 2x2 matrix of output which you will need to appropriately normalize. If instead of a matrix all you need is the vector form of the “chi” fission spectrum, then you might consider using the built-in “Chi” class in the “openmc.mgxs” Python module.
If you are referring to a spatial fission matrix, that can also be done based on cells (unfortunately can’t be done on meshes right now). You would need to specify ‘cellborn’ and ‘cell’ filters, e.g.:
nu-fission
Again, that can be done in a similar fashion in the Python API as to what Will showed before.
I’m not aware of many people using ‘cellborn’ filters, so if you do try it out, let us know how it turns out and of course please don’t hesitate to write if you run into any problems.
So that means I would like to tally how many neutrons were born in the i-th cell caused by neutrons born in the j-th cell. And it would be nice to do it over a mesh. I can see how to tally the nu-fissions in a mesh but not how I could track how a given neutron in a given cell caused a fission in another (or the same) cell. Is it something I could extract from the statepoint files instead?
Kaur- right now it’s not possible to determine scores filtered by what mesh cell the source particle was born in. If that’s a feature you’re interested in, feel free to create an issue on the OpenMC github page.
If you don’t mind me asking, what is your intended use of the fission matrix? If you are interested in determining higher harmonic eigenmodes, that can probably be done via CMFD which is in OpenMC.
Yes, I am interested in the higher modes. I have looked at results I can get from CMFD and another method but I would also like to compare them to results from the fission matrix. I would like to get the results from the fission matrix as a sort of a reference. So you would say it’s not possible at the moment?
That’s correct; at the moment it is not possible. I’m trying to think of creative ways to do it, but none of them seem reasonable, e.g.
Run a series of fixed source calculations each having a source only in one mesh cell. Problem is that for a k-eigenvalue calculation (i.e., a system with k >=1), running in fixed source mode will cause the particle population to blow up.
Generate particle track files and post-process to determine the fission matrix. This would be super cumbersome and error-prone.
Hack the OpenMC source to show the mesh cell that a particle originated from when it scores to a tally bin. Probably not the answer you were looking for.
Best,
Paul
Is there a current capability for doing mesh-based spatial fission matrix with OpenMC? As a follow-up, what will be an alternative method for determining higher eigenmodes and eigenvalues?
I am currently working on implementing mesh-based fission matrix capabilities in OpenMC. It is based on a “meshborn” tally filter where events can be scored based on the mesh cell a particle originated from. I am planning to divide this new feature into two Pull Requests: the first one is for the meshborn filter and the second one is to integrate the actual fission matrix calculation.
For the moment, I am finalizing the testing of the first PR (meshborn filter) to make sure everything is correctly implemented.
I will post updates in this conversation as I move forward with the development.