Biasing in FLUKA

Dear FLUKA experts,

This is the statement given in ICRP 144, 2020: “To reduce the variance of the Monte Carlo simulations, the uniform source was reproduced by increasing the number of photons or electrons emitted per unit
area and decreasing the Monte Carlo weight of photons or electrons as their emission
point approached the coupling cylinder.”

They have used MCNP code to achieve this. I have following quires regarding biasing available in FLUKA.

  1. Is this the same as region biasing available in FLUKA? Does region biasing works on the basis of increasing number of particles per unit area ?

  2. If the primary particle is photon and if we apply biasing in the source region (in this case a hemispherical cloud source), will this be applied on the primary particle (i.e. photon ) only ? Or the biasing will also increase number of secondary photons and electrons?

  3. It was discussed in the fluka beginners course that application of biasing is not always advisable in air since interaction within a low dense material like air is very small and there is not much change in direction and energy of photons in two adjacent points. So in the present context even if we apply region biasing, how can we confirm that the biasing is serving our purpose? Is there any statistical check for that ?

Thanks and regards,

Dear Riya,

the region importance biasing only applied during the transport of the particles, not for the source generation. It will only increase or decrease the particle weight.

By default each primary particle starts with the weight of 1.0.

What they did is to change the initial weight of the primary particle.

To understand the reason why they did it, imagine a surface (volume) where we want to start our primaries uniformly, and we split it into two equal halves A and B.

To get an uniform distribution, the we start the primaries from A 50% if the cases, and so from B. In this case we don’t change their weight.

But, what if we want to start more particles from B, because it is closer to our region of interest? We want to reduce the statistic there, without wasting extra resources to A.

Then we can start more particles from B that from A. But this would mean our source not uniform any more. To keep the uniformity, we need to reduce their weight.

Let’s start twice as many particles from B, than from A (The probability of primary starting in A is ~33.3% and from B is ~66.7%). If the primary starts from A we keep their weight as 1.0, but if they start in B, we set the weight to 0.5, so the total weight of the primaries in A and B is the same → we got our uniform source back.

But now we 1.5 times the primaries to get the same total weigh, as with the original source. However, you don’t need to worry, in FLUKA the results are not normalized to the number of primaries, but to the primary weight. (This is the same if all primaries have the weight of 1.0)

To change the weight of a primary particle you need to implement it in a source routine.

I hope this is clear enough.

Now back to your other questions related to importance biasing:

  1. The region importance biasing is applies to particles regardless to their generation. However it is possible to apply the biasing only to
    a. hardons and muons
    b. electron, positrons and gammas,
    c. low energy neutrons

  2. There is no such statistical check, you need to be aware of this kind of issues.


Thank you so much @horvathd for this nice explanation. It is perfectly clear to me. Just to clarify, we can assign weight of primary particle using WTFLK (NPFLKA), right ?

Also, can you please explain how this weight actually works here? I mean, at a time, one particle is transported in the simulation. Let’s say total history is 10. Now in the present context, A region has 33.3% particles with weight 1.0 and 66.7% particles with weight 0.5. Does this weight play a role during transport ? or is it adjusted at the end of the simulation in the final scoring parameter?


Dear Riya,

you are correct, the primary weight is set in the vaiable WTFLK (NPFLKA).

The weight of a primary is used to normalize the results of the event as well. So if a 1 MeV photon with weight 0.5 deposits it’s total energy in a region, FLUKA will only score 0.5 MeV energy deposition for this particle. Same goes for fluence, etc.

And the end of the simulation, the final cumulated results are divided by the total primary weight.

The weight is kept the same during transport unless a biasing (region importance, or biased physical interaction) happens.


Thank you @horvathd for the explanation.


A post was split to a new topic: Normalization in two steps simulations

A post was merged into an existing topic: Normalization in two steps simulations