Spatial distribution of emerging neutrons

Dear FLUKA experts,

In my simulation I created a very simple geometry. It is only a homogeneous cube (RPP) in the middle of void. The BEAM source is above this cube and it fires protons in the direction of the cube.

I would like to observe the emerging neutrons, especially their spatial distribution. I have the following questions:

  • What is the best way to get information about the energy of the emerging neutrons at the time of their emergence?
  • I would like to know the number of emerging neutrons as a function of Z coordinate (depth in cube). Is there any way to record this? If there is, it would be great if I could filter only those particles that escaped from the top surface of the cube.

Thanks in advance,

Hi @szabolcs_nagy
consider if USRYIELD can serve well your purposes. It applies either at the neutron creation (EMERGING from inelastic hadronic interactions) or at a region boundary. Therefore, in order to get the energy info as a function of z, you should split your cube by parallel planes and insert several USRYIELD cards referring to each boundary at a different z, getting the neutron spectrum at different depths. Also, applying a filter on the neutron polar angle with respect to the beam direction (as allowed by USRYIELD), you can score only backscattered neutrons, as you seem to aim. This, properly speaking, does not give you a spatial distribution (as provided instead by USRBIN as energy integrated fluence). Still, the USRYIELD integral value is the number of emerging neutrons as a function of z (thanks to multiple USRYIELD cards).

1 Like

Hi Francesco,

Thank you for your answer, I understand your suggestion and I will take it.

Have a nice day,

Dear Francesco,

I have been reading the manual of card USRYIELD and it seems that I can not restrict the region of emerging neutrons to a subregion of the whole simulation. The manual says as follows:

 WHAT(4) >  0.0: number or name of the first region defining the boundary
           (upstream region)
         = -1.0 and WHAT(5) = -2.0: the yield of particles
           EMERGING from inelastic hadronic interactions is scored
           Default = -1.0

 WHAT(5) >  0.0: number or name of the second region defining the boundary
           (downstream region)
         = -2.0 and WHAT(4) = -1.0: the yield of particles
           EMERGING from inelastic hadronic interactions is scored
           Default = -2.0

I assume by giving WHAT(4) and WHAT(5) the value of -1 and -2, the detector will not have the information about the region and records the required information of the emerging neutrons globally. Can you confirm this?

Thanks in advance,

Correct. However, the fluscw.f user routine (activated by the card USERWEIG) allows to zero the scoring (by putting LSCZER = .TRUE.) according to your own logic, possibly as a function of the position XX,YY,ZZ or the region number NREG, this way limiting the content of the respective USRYIELD card.
Anyway, my suggestion was rather to apply USRYIELD to an actual region boundary, obtained by cutting your cube into several geometry regions by means of XYP planes at different positions. This was to address your goal of knowing “the number of emerging neutrons as a function of Z coordinate (depth in cube)”, including “information about the energy of the emerging neutrons”.

If I understand your suggestion correctly, the region on the top of the cube will score the double-differential particle yields of each regions from the lower levels and the same applies to all the other regions. For example:

In this case, If I would like to know the yield of emerging neutrons from regSurf1 to regSurf0 I need to subtract the yield from regSurf2 to regSurf1. And the same logic goes on until I reached the bottom of the simulation. Is it right?


Not really. Because not all the neutrons backscattered from regSurf2 will necessarily make it through regSurf1. I eventually understand that you want to get a neutron spectrum on the target top surface, as a function of the neutron generation depth. This is more complicated, calling for customizing a couple of user routines, namely mgdraw (usdraw) to record the neutron generation depth and the aforementioned fluscw to filter the USRYIELD scoring accordingly. However, before going further along this implementation way, I find some ill-definition issues, since how should a neutron be counted if coming out from an (inelastic) interaction in regSurf1 by a neutron generated in regSurf2? Would you take the deepest point of the nuclear interaction chain?
Personally, I would simply start scoring with USRYIELD the single differential neutron spectrum on the top surface for different target depths, i.e. running different cases with increasing depth, and I would observe the spectrum evolution, provided that a meaningful statistics is achieved, which is anyway challenging for a backscattering problem. Keeping also in mind that for a depth large enough, or in the presence of containing walls, the thermal neutron component of the spectrum will develop.