plasma source for tokamaks

Dear OpemMC community

What are your thoughts on the inclusion of a plasma neutron source that could be used by people in the fusion community

There are some existing C++ routines with Fortran implementations for MCNP available on github

The equations are based on a paper from CEA and a plot of typical neutron space and energy distribution is attached.

tokamak_plasma.html (1.75 MB)

Hi Jon,

I would absolutely be interested to have this kind of capability in OpenMC. I’ll have a look at the paper and the github repo you linked to. As you may be aware, we don’t currently have toroidal surfaces implemented; will that be a showstopper for you? (just trying to get a sense of what are the most important things we are missing)


Hi Paul

Not to put words in Jon’s mouth, but yes toroidal surfaces are pretty critical for fusion systems. I was looking at doing this and contributing it back in, using the roundoff-proof algorithm for toroidal surface root finding (I’ll find link later). If you guys get to it before I do, all the better!



Hi Paul

Just a quick update on this.

Andy has done some nice work on the energy distribution (Muir Gaussian sampling)




First off, thank you for this effort! I have installed your parametric_plasma_source python package and am able to generate source points and plot them, which is really great.

I’m now trying to use parametric_plasma_source as a source in OpenMC, but am running into an error. See message below:

terminate called after throwing an instance of 'std::invalid_argument'
  what():  stod

I’m unfamiliar with this sort of error, could anyone help me out? The input for my settings is what is shown here. I am running in Ubuntu on WSL. Thanks!