Particle "behaviour and death" in transport simulations

Hi everyone,

Reading the Overview of Program Flow, I understand that, in transport simulation, OpenMC tracks only one particle at a time. So, in a given batch, for a given number of particles, OpenMC patiently follows the journey of the first particle as described in the Overview of Program Flow, memorizes its impact on material composition (creation of fission products, for example), then follows the journey of the second particle in the new environment inherited from the journey of the first, then does the same for the third particle, and so on.

1/ Am I right?
2/ If so, how can we be sure that the journey of the first particle will end? I mean, it could just collide forever (not really likely of course), or, more likely, create a daughter particle by fission, which OpenMC has to track, and so on without ever switching to the second particle.

Thanks a lot!

(Rk: I didn’t know what to call this topic, please let me know if you have a better idea)

Hi.
For the purposes of your question, it is fine to consider that the code processes one particle history at a time. This eliminates issues related to parallel computing.

Each particle is tracked from creation to removal. Leakage and absorption always remove particles. In OpenMC, fission does not kill the particle. Instead, the fission event is used to bank a fission site for the next k-eff generation. One site is banked per fission neutron, and a test is made to determine if it’s energy should come from the prompt or delayed fission emission spectrum. Following the call to the fission routines, a check is made to see if the incident neutron was absorbed in the medium.

When the neutron undergoes a (n,2n), (n,3n)… type reaction, the daughter particles are banked to a stack. When the parent particle is killed, the last banked particle is popped and it’s history is tracked.

You are correct that this can lead to a large number of scattering interactions. Even very simple problems can run for a long time if the thermalization time of the neutrons is long. You can play with critical infinite homogeneous mixtures of H1/U235 and H2/U235 to see the effect on run time. Can be implemented using a sphere with a reflective boundary condition.

1 Like