No neutrons scored from low energy deuterons on light metal target

Hello Fluka admins and users,

This is my first post for 2021, so happy new year!

I am performing some neutron yield benchmarking calculations with Fluka. I am trying to compare the neutron yields of different primary & target configurations. I am considering protons and deuterons of different energies (in the MeV range). I am testing the neutron yield when either of these beams are incident on beryllium targets and lithium targets of appropriate thicknesses (as obtained from SRIM).

I have a rather simple geometry under consideration as shown in my input file. I am looking at the neutron flux in different directions as denoted by my USRBDX cards. I am scoring neutrons of all energies, thermal neutrons and epithermal neutrons in each angular range. Please note that my definition of thermal and epithermal neutrons might be smaller than you might define it because it is a neutron scientist’s definition of those energy ranges.

I have a few questions and I am listing them from hard/complicated to easy/trivial:

1.) When I utilize deuterons of small energies (2 MeV), I get no neutrons scored in all angular ranges. I am unsure why this is the case as deuterons should undergo a reaction with both beryllium and lithium targets. When I gradually increase this energy above 6MeV, I get some neutrons scored, but the errors are huge (~25%). I believe there is something inherently wrong with the model that I am using which is causing my simulation to catastrophically fail. Is there a physics card that I am missing or need to deactivate to correct my model?

2.) I obtain results for protons on lithium and beryllium with reasonable errors. However, the results are only as reliable as my model. I want to ensure that my model is appropriate. If any feedback can be provided on the cards which I use to simulate me problem, I will appreciate that.

3.a) I want to understand, in greater detail, under what circumstances LOW-MAT should be activated.

The manual simply states that beginner users (like myself) can misinterpret this. However, as low energy neutron transport is extremely important for my applications, I need to have a firm grasp of its utility. In my case, I activated LOW-MAT for the target material.

3 b.) However is it also important to assign a cross-section to the medium, water, which appears in my geometry and is being used to moderate/slow the neutrons coming from the target? If I am indeed supposed to assign a LOW-MAT property to water, how do I go about doing this?

3 c.) What specific properties does Fluka modify when the LOW-MAT card is called for a given element? I have a collaborator who uses MCNP for example, and he has to use different data tables depending on the target material (Li vs Be) and energy regime of primary particles considered. I basically want to ensure that the quantities used by Fluka are appropriate for my simulations. Also, if I wanted to check the numerical values of the data (e.g. cross-section) which Fluka uses, how can I do this?

4.) As you can see, my USRBDX card scores the two-way flux at each boundary crossing. I have also included the area of the boundary crossing in each USRBDX card. When I look at my sum.lis file, I get the total response in each detector (units of particles/cm^2/primary and particles/primary). I can convert this to a flux by considering the beam current and proton (or deuteron) charge. Is there any additional normalization factors which I need to include in order to obtain the two-way neutron flux crossing this boundary?

FYI, my simulations are run with 10,000,000 primaries, 10 MC cycles, and each simulation is also spawned 10 times to improve the statistics.

I’ve provided two input files corresponding to different simulations and three sum.lis files per simulation - each of the sum.lis files contains scoring of thermal, epithermal and neutrons of all energies across each of the detectors defined for different neutron scattering angles (relative to the z-axis/propagation axis).

Thanks for any insight you can provide.

Best,
DaliniBe_deut_2MeV_0pt5.inp (11.3 KB) Be_deut_2MeV_0pt5_21_sum.lis (1.4 MB) Be_deut_2MeV_0pt5_22_sum.lis (1.3 MB) Be_deut_2MeV_0pt5_23_sum.lis (1.5 MB) Be_deut_8MeV_0pt5.inp (11.3 KB) Be_deut_8MeV_0pt5_22_sum.lis (1.3 MB) Be_deut_8MeV_0pt5_22_tab.lis (605.2 KB) Be_deut_8MeV_0pt5_23_sum.lis (1.5 MB)

Dear Dalini,

1.) When I utilize deuterons of small energies (2 MeV), I get no
neutrons scored in all angular ranges. I am unsure why this is the
case as deuterons should undergo a reaction with both beryllium and
lithium targets. When I gradually increase this energy above 6MeV, I
get some neutrons scored, but the errors are huge (~25%). I believe
there is something inherently wrong with the model that I am using
which is causing my simulation to catastrophically fail. Is there a
physics card that I am missing or need to deactivate to correct my
model?

The modelling of low-energy (below 150 MeV/n) deuteron nuclear
interactions is a long-standing missing item in FLUKA which is presently
under heavy development. For now, as a functional description we suggest
the IONSPLIT card to allow the deuteron to undergo (an effective proxy of)
nuclear interactions. Note that as it stands this option is not intended for
quantitative benchmarking, since a dedicated nuclear interaction model
is not included at this stage.

2.) I obtain results for protons on lithium and beryllium with
reasonable errors. However, the results are only as reliable as my
model. I want to ensure that my model is appropriate. If any feedback
can be provided on the cards which I use to simulate me problem, I
will appreciate that.

It is unclear to me what you mean by your model (your geometry?), but
regarding the cards, upon a first glance I see your PART-THR card kills
protons below 2.5 MeV. Adapt/lower the threshold if that’s not what you
actually intended. Also, the PHOTONUC card will have no effect with
WHAT(1) blank.

3.a) I want to understand, in greater detail, under what circumstances
LOW-MAT should be activated.

The manual simply states that beginner users (like myself) can
misinterpret this. However, as low energy neutron transport is
extremely important for my applications, I need to have a firm grasp
of its utility. In my case, I activated LOW-MAT for the target
material.

After a bit of familiarity there is nothing mysterious about the
LOW-MAT card. If you are under any of the three conditions indicated in
note 2 of the manual you don’t need it. Instead, if you’re in any of
the conditions in note 3 you do. Ordinarily one verifies the conditions
in note 2, hence the note for new users not to blindly (mis?)use the
card. For completeness, you can look at table

10.4.1.2} List of materials for which cross sections are available in the
260 neutron, 42 gamma group library:

to see all materials and temperatures available.

3 b.) However is it also important to assign a cross-section to the
medium, water, which appears in my geometry and is being used to
moderate/slow the neutrons coming from the target? If I am indeed
supposed to assign a LOW-MAT property to water, how do I go about
doing this?

If you take water as one of the default materials defined by FLUKA,
not much should be done a priori. If you look at the table above, you’ll see the
first H cross section entry for low-energy neutrons is for H bound in water.
And for Oxygen it’s for 16O, so you should be fine.

3 c.) What specific properties does Fluka modify when the LOW-MAT card
is called for a given element? I have a collaborator who uses MCNP for
example, and he has to use different data tables depending on the
target material (Li vs Be) and energy regime of primary particles
considered. I basically want to ensure that the quantities used by
Fluka are appropriate for my simulations. Also, if I wanted to check
the numerical values of the data (e.g. cross-section) which Fluka
uses, how can I do this?

Essentially integral cross sections, kerma factors, up/down-scattering
and (n,gamma) probabilities used in the group-wise treatment of low-energy
neutron transport, as well as residual nuclei production. You can visualize this
information by issuing a LOW-NEUT card with various WHAT(4) values for
various levels of verbosity, see the manual. Incidentally, except for
that purpose, I’d do not see a need for your currently included LOW-NEUT
card.

4.) As you can see, my USRBDX card scores the two-way flux at each
boundary crossing. I have also included the area of the boundary
crossing in each USRBDX card. When I look at my sum.lis file, I get
the total response in each detector (units of particles/cm^2/primary
and particles/primary). I can convert this to a flux by considering
the beam current and proton (or deuteron) charge. Is there any
additional normalization factors which I need to include in order to
obtain the two-way neutron flux crossing this boundary?

At a first quick glance I don’t see anything wrong in the strategy a priori.
Just be careful whether you score fluence or current (“flux” is a bit loose
in USRBDX-terms).

Cheers,

Cesc

1 Like

Dear Cesc and Fluka experts,

Thanks so much for replying to my detailed post, point by point. It clarified a number of details for me.

I am still unclear about point 4. Since I have gone through this exercise in detail since your reply, I can be more explicit. I implemented two-way scoring of neutrons at a detector and I have explicitly included the area of the boundary crossing. No angular binning was requested as shown below.

image

I used Flair to process my simulation results. Now, I would like to plot the differential data. See screenshot below showing the set up of my plot.

Right now, I have a normalization factor of 1e-3/(1.609e-19) since I want to convert my differential fluence unit from particles/cm2/primary to particles/cm2/mA. I want to know if I also need to include a normalization factor of 4*pi. The Fluka manual (USRBDX | FLUKA) says that

“… when requesting a fluence or current energy spectrum, with no angular distribution, to obtain INTEGRAL BINNED results (fluence or current in cm-2 PER ENERGY BIN per primary) one must multiply the value of each energy bin by the width of the bin (even for logarithmic binning), AND BY 2 pi or 4 pi (depending on whether one-way or two-way scoring has been requested). This is done automatically by the dedicated post-processing utility program USXSUW (see Note 9).”

I am not sure if Flair runs USXSUW when it generates my tab.lis output files. If you can clarify whether or not I explicitly need to add 2pi or 4pi, that would be helpful. Thank you!

Kind regards,
Dalini

Flair invokes indeed usxsuw and provides (also) the energy spectrum integrated over the solid angle, as explicitly written in the selected Det string of your screenshot.
I see that you asked for linear energy binning, however neutrons below 20 MeV get automatically applied the pre-defined logarithmic binning of the groupwise treatment they are subject to. Therefore, one should better ask for log energy binning and rather plot (dn/dlogE), that is (E dn/dE), implying the choice <X> * Y in the plot interface of Flair, still in units of (neutrons/cm2/mA) due to the dimensionless ratio E/dE.
Plotting DX * Y makes not much sense, because your ordinate scale becomes binning dependent, making the resulting spectrum odd. If, in addition to plotting it, you are interested in integrating it, just look at the produced sum.lis file, where both the total and partial integrals are already written down for your convenience.

1 Like

Dear Francesco,

Thanks for confirming that Flair invokes usxsuw.

I did not take note that logarithmic binning is applied to low energy neutrons below 20MeV. Thanks for correcting this grave error in the treatment of my data! I will perform the isolethargic plot instead of the DX*Y plots.

I have indeed been integrating over a range of neutron energies, say between 10meV to 100meV. I used the detector tab.lis data and extracted the single-differential data which is the first set of formatted data which appears for the detector. I then calculate the width of the energy bin for each interval and multiply it by the differential fluence. If I sum these product values over the desired energy range, will I get the correct integrated fluence? Or do I have to reference the data in the sum.lis file only because the low energy neutron data has been presented with logarithmic binning?

In principle your procedure on the tab.lis data, if properly performed, should match what you find in the sum.lis file. The advantage of the latter is that the integration is already properly performed for you. There, at the beginning of each detector block, you find the total integral, then the differential spectrum (as in the tab.lis file), and eventually, even more interesting, the cumulative spectrum. This gives you exactly what you are looking for, namely the integral over any energy range, since - as a function of energy E - it reports the integral between E and E_max. So, the integral between E1 and E2 is the difference between the value of the cumulative spectrum at E1 and the value of the cumulative spectrum at E2.

1 Like

Dear Francesco,

Thanks for explaining this in detail to me. It will help me save time in my analysis.

Best wishes,
Dalini