Computing the fission matrix

146 views
Skip to first unread message

Kaur Tuttelberg

unread,
Feb 22, 2016, 4:06:37 AM2/22/16
to OpenMC Users Group
Hi

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.

Regards,
Kaur

Will Boyd

unread,
Feb 22, 2016, 8:10:56 AM2/22/16
to Kaur Tuttelberg, OpenMC Users Group
Kaur,

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:

<tally id="1">
    <filter type="energy" bins="0. 1.e-6 20.0" />
    <filter type="energyout" bins="0. 1.e-6 20.0" />
    <scores>nu-fission</scores>
    <estimator>analog </estimator>
</tally>

This may alternatively be generated using our Python API as follows:

import openmc

tally = openmc.Tally()
tally.estimator = 'analog'
tally.add_filter(openmc.Filter(type='energy', bins=[0., 1.e-6, 20.]))
tally.add_filter(openmc.Filter(type='energyout', bins=[0., 1.e-6, 20.]))
tally.add_score('nu-fission')

tallies_file = openmc.TalliesFile()
tallies_file.add_tally(tally)
tallies_file.export_to_xml()

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.

Best,
Will

--
You received this message because you are subscribed to the Google Groups "OpenMC Users Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openmc-users...@googlegroups.com.
To post to this group, send email to openmc...@googlegroups.com.
Visit this group at https://groups.google.com/group/openmc-users.
For more options, visit https://groups.google.com/d/optout.



--
Will Boyd
Nuclear Science & Engineering
Massachusetts Institute of Technology

Paul Romano

unread,
Feb 22, 2016, 8:39:54 AM2/22/16
to Will Boyd, Kaur Tuttelberg, OpenMC Users Group
Kaur,

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.:

<tally id="1">
  <filter type="cellborn" bins="1 2 3 4 5" />
  <filter type="cell" bins="1 2 3 4 5" />
  <scores>nu-fission</scores>
</tally>

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.

Best regards,
Paul

Kaur Tuttelberg

unread,
Feb 22, 2016, 9:40:32 AM2/22/16
to Paul Romano, Will Boyd, OpenMC Users Group
Thanks for the replies. I should've clarified, I do mean a spatial fission matrix in the sense as described in this, for example:
https://laws.lanl.gov/vhosts/mcnp.lanl.gov/pdf_files/la-ur-13-24523.pdf
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?

Best,
Kaur

Paul Romano

unread,
Feb 22, 2016, 9:47:12 AM2/22/16
to Kaur Tuttelberg, Will Boyd, OpenMC Users Group
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.

Best,
Paul

Kaur Tuttelberg

unread,
Feb 22, 2016, 10:04:04 AM2/22/16
to Paul Romano, Will Boyd, OpenMC Users Group
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?

Best,
Kaur

Paul Romano

unread,
Feb 22, 2016, 10:14:09 AM2/22/16
to Kaur Tuttelberg, Will Boyd, OpenMC Users Group
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
Reply all
Reply to author
Forward
0 new messages