Validation of time filter

Hi, I did some comparisons with the new time filter with MCNP. For documentation I will post there here. (Or do we have a a better place)
I can provide the input scripts as well. Any suggestions, where I should put them?

The “models” are nothing serious, only toy setups, that yield easy to understand results.

First Model: Sphere, r=10000 cm, filled with H-1 and H-2 @ 0.001 g/cm3, neutron pulse at origin with E=10 MeV
Tally the time resolved flux within the sphere from 0 to 10 µs.

(I use hydrogen as well as deuterium, because the latter has less absorption)

Result: At this scale, OpenMC and MCNP could not be distinguished. The kink at approx 2.5 µs is due to the 10 MeV Neutrons leaving the system, leaving the thermalizing neutron behind.

Second Model: Sphere, r=50000 cm, void. Subdivides in 10000 cm subshells. Neutron pulse at origin with E=10 MeV and a with of 1 µs (Time-Source Patch, that will be submitted soon!)
For OpenMC, I also calculated a spherical mesh version of this model, without the geometric subshells)

The Neutrons are streaming freely through the geometry. When the pulse crosses a subshell boundary, part of it is in one cell, part of it in the next one. This gives the trapezoid shape. MCNP and OpenMC give the same results.

The mesh case is different. (I already had the fear, this might not work). The problem is, that for geometric cells, the tally system is called whenever the particle crosses one cell. Thus the time filter can bin the flux for one cell. With a mesh filter, the time filter does not know, when mesh boundaries are crossed.

Third Model: Like Model 1: Sphere with low density deuterium. Neutron Pulse with 10 MeV, Now tally time and energy simultaneously.

The upper straight part is the 10 MeV Neutrons crossing the sphere and exiting after ~ 2.4 µs. After that time, only scattered neutrons are present in the system and they slowly thermalize. I did only a visual comparison, but I think, these results look quite good.


  • The time filter gives for very simple models (free streaming and weak scattering) the same results as MCNP.
  • TimeFilter and CellFilter and, TimeFilter and EnergyFilter are compatible
  • TimeFilter and MeshFilter are not compatible (for now?)
1 Like

Thanks for the thorough testing of this @ojs! I agree that using a TimeFilter and MeshFilter simultaneously won’t give correct results when using a tracklength estimator. However, if you were to use a collision estimator (tally.estimator = collision), I think it should give correct results provided that the particle is not traveling through a void region.

As far as inputs, we have a validation repository that would probably be the best place for them. Feel free to submit a PR there.