Dear FLUKA experts,
From this post is-usryield-sufficient-for-getting-all-neutron-properties. I would like to clarify my barely understanding. First of all, I have got the neutron spallation properties in the format of .txt file that including IJ, TXX, TYY, TZZ, WEE (all equal to 1), XX, YY, ZZ, and here is how I worked,
As I understand the process of FLUKA, FLUKA will read what was assigned into usryield card because of the use of yield estimator in fluscw.f Then it will give out the interest value that defines by the user in user-routine.
I would like to know the neutron properties I got from this workflow, is it the primary neutron from the spallation process, or secondaries, tertiary … ?
The yield estimator will score the neutron properties in double differential function, is the double differential or single differential (using USRTRACK) have an influence on values of neutron properties? I don’t surely understand what is double differential is? is it correct to use a yield estimator in fluscw.f for this workflow?
That would depend on what is implemented inside the fluscw routine. If you are only filtering neutrons without any further distinction then you should be getting all of them, regardless their generation.
If I am not mistaken you are using USRYIELD only to get calls to the fluscw routine, but then you are extracting the properties with the code you implemented inside it. The properties that you mentioned above will not change regardless of how you score.
Short explanation. Single differential scoring: score one quantity as a function of another one (e.g. flux as a function of the particle energy). Double differential scoring: scores one quantity as a function of two quantities (e.g. flux as a function of the particle energy and angle).
Hope it helps.
dear @fogallar ,
Thank you so much, that’s a great explanation.
May I ask something more about scoring the neutron spallation process, what should I add to this fluscw.f script for getting the only neutron from the spallation process that came out after bombarding by proton beam?
fluscw_forads.f (4.7 KB)
Thanks in advance,
There is a variable called
Llo that is available in the fluscw routine. This variable tells you the particle generation (please take a look to the routine comments). Using an if statement and the information in this variable you can filter out neutrons according to their generation.
Hope this helps,
Dear @fogallar ,
Thanks again for your kind help.
I have seen that variable Llo gives out the generation in integer value i.e. 1,2,3,4,5 in the .txt file. I assume that the first generation is from the spallation process.
However, in the FLUSCW manual from note 4, it said: " * 4) Note that functions FLUSCW, COMSCW can contain user-written logic to tune the multiplication factor (which can have even a value = 0 or 1!) according to position in space, direction, energy, material, type of particle, time, binning number, etc. ".
Is the “time” mentioned here refer to generation? and Is there any setup to give out the “time” in unit “sec” of the recorded particles?
I believe generation 1 should correspond to the primary particles, your protons. In general, generation i>1 are those particles created as a result of a reaction induced by a particle of generation i-1. Therefore, neutrons from a spallation reaction caused by your primary protons should be generation 2.
Please note that, in general, products of a spallation reaction may be able to induce further spallation reactions themselves. Consequently, not all of these reactions have to be caused by your primary protons. If you want to accurately identify the products of a spallation reaction and score their properties at the time of creation you may want to look to the reaction itself by means of the mgdraw routine, as proposed here: Volume neutron source information - #6 by fogallar.
Not sure what do you mean by “time referring to the generation”. Nonetheless you can access the Atrack variable included in trackr.inc to obtain the age of the particle in seconds (time since the creation of your primary particle: your proton). Since trackr.inc is already included in your routine, you should be able to access Atrack as any other of the variables you are using (e.g. Ij, Xx, Wee, …).
Hope this helps.
A post was split to a new topic: Mgdraw elastic vs inelastic ICODE