Issues in a simulation of radiotion shelding for fusion device.

I’m in the process of designing a new nuclear fusion research facility. I am currently working on radiation protection issues.
The device generates a neutron flux during operation.It is necessary to protect both personnel and electronics from the effects of these particles (both direct and indirect, which we’ll talk about later :slight_smile: ).
I have more or less learned how to use this wonderful package for calculating neutron flux attenuation in walls with different channels (which is one of the optimization tasks). But there are also a couple of questions on this part.

  1. “Interface”. In version 0.10 after launching the code (openmc.run()), the console printed a logo and gradually printed the progress of execution (first, loading of various data then the number of the current banch). However, the situation in version 0.11 is very strange. It doesn’t print anything for a long time, but sometimes it prints everything up to some banch. For example, with 400 banachas, it prints after the 40th and 22*th.
    Is it possible to set up a normal mode of printing progress?
    This happens both on the virtual machine on Ubuntu and on the server node. The openmc package was installed on them independently by different people.
  2. The question of random results.
    The montecarlo method is based on a random distribution.
    However, when I run the same task several times in the output file, the values are absolutely the same. They change only when particle parameters change (banchi*quantity in one banch). Either I don’t understand something in the physics of the process or I use the code incorrectly. Maybe you need to restart the random procedure or something like that?

In addition, there is a question about the appearance of a gamma photons, and their propagation / absorption in radiation shielding.
As far as I understand, at the moment there is no direct method of determining the photon flux/current through the tally.

I thought it would be an option to look at the neutron energy spectrum at different depths of the shielding wall and estimate the depth of the main photon generation. And then, according to the data available for their absorption, we can estimate the remaining flux and the resulting radiation load. But that is difficult and less accurate option .

Is there a more adequate way to assess the effect of gamma radiation at this point?
Or maybe it is possible to determine the gamma flow directly in the near future?

Sorry about a such long message)

HI Illia,

Sorry for taking some time to get back to you. To address each one of your questions:

  • Regarding the difference in output behavior between 0.10 and 0.11, I suspect this has to do with the fact that for 0.11 the core codebase was rewritten in C++. This might have changed the behavior with how standard output is buffered, but it depends on many factors. A few things you can try:
  • Set the environment variable PYTHONUNBUFFERED=1
  • Try running the ‘openmc’ executable directly from the command line instead of running openmc.run() through Python- OpenMC relies on what’s known as a pseudorandom number generator that generates a sequence of random numbers distributed on the interval [0,1). Given a starting number in that sequence, the subsequent ones are always the same, so even though the numbers are “random” in the sense that there appears to be no relationship between one to another, there actually is. OpenMC will, by default, always start with the same number (seed), but it is possible to change the seed if you want to get different results. For example, if you wanted to repeat a simulation multiple times (for statistical purposes), changing the seed would be the way to go. The seed can be changed with the openmc.Settings.seed attribute.
  • In version 0.11, you can tally a photon flux or current. If you are running a coupled neutron-photon calculation, you should use a ParticleFilter to specify that you only want the flux from photons. You’ll also need to set Settings.photon_transport = True, and your data library must have photon data present.
    Best regards,

Paul

Hi Illia

Always keen to hear about OpenMC being used for fusion simulations :slight_smile:

Just in case it is helpful here is an example photon spectra simulation, you can see it uses the photon_transport and ParticleFilter that Paul mentioned.

https://github.com/ukaea/openmc_workshop/blob/master/tasks/task_5/2_example_photon_spectra_tokamak.py

best of luck

Jon

1 Like

Dear Paul,

Thank’s a lot!

  1. I try to implement your advice.
  2. Patrick Shriwise, earlier tells about that. So I don’t worry about that now. But it sems to I will need to use different ‘‘seeds’’ later to split very time consuming calculation on parts.
    Some times in my simulations I has very hight level of neutrons flux attenuations. So I should to use large numbers of particles to get acceptable error rate.
    3)That very good news! Also Jon give me a very usefull example of such calculations that I can easly (I hope :slight_smile: ) implement in my simulations.

So thank you again!

Dear Jon,

That I need to! Than you very mach!

p.s. Yes, I have noticed that the nuclear community has arranged for hegemony in this area :)))))))
All right, we’ll fight for the rights of oppressed “thermonuclear physicists”. Face with Tears of Joy