Page 1 of 1

Detectors and Delta Tracking

Posted: Tue Jul 28, 2015 11:41 pm
by andrew.hall
I have a simple question that I think will explain something I'm seeing. If you add a surface detector to a problem geometry, does Serpent stop any neutron that crosses the surface and resample for the other side when using delta tracking? I've noticed that when I refine my mesh (use more gcus and more surface detectors) for the same exact global geometry with the same random number seed that the eigenvalue changes. The change is only around 16pcm but I would expect it to be the same unless Serpent samples more random numbers due to the increased detectors. Any help is appreciated on how Serpent handles this kind of situation.

Thanks,
Andrew

Re: Detectors and Delta Tracking

Posted: Wed Jul 29, 2015 2:34 pm
by Jaakko Leppänen
No, the tracks are not stopped when scoring the surface detectors. The surface crossings are handled by taking the beginning and end point of each track, and calculating the crossings between them. After that, the tracking proceeds from the previous collision point.

If you are using surface detectors with surfaces that are not part of the geometry, there should be no change in the random number sequence. But if you add actual boundaries, this will change the tracks sampled with surface-tracking, which will also change the random number sequence. Are you using the default threshold for delta-tracking, or have you set it to 100% using the "set dt" card? With 100% delta-tracking, the random number sequence should probably remain the same, unless you have some overlaps in the geometry.

Re: Detectors and Delta Tracking

Posted: Wed Jul 29, 2015 9:31 pm
by andrew.hall
I added the set dt 1 card to my inputs and they now produce the same eigenvalue. Looks like my input was switching to surface tracking. Thanks for the help!

Re: Detectors and Delta Tracking

Posted: Thu Aug 20, 2015 12:11 am
by andrew.hall
I have a follow up question on this topic. By adding the set dt 1 card to a small 2 region problem, I was able to produce the same eigenvalue with a coarse mesh and a fine mesh (same overall global geometry). However, when I perform the same steps for a larger assembly problem, there is about a 10pcm difference in the eigenvalues. This seems small enough that I don't believe it's an input issue (I have also looked over my inputs several times). Instead, it seems that the random number sequences are changing somewhere between the two cases. However, I'm unsure what could be causing this since I'm using the same random number seed and the set dt 1 option for both simulations. Is there something else internally within the code that could be causing this difference? I just found it odd that the small problem produced the same eigenvalue, but not the large. Any help is greatly appreciated.

Re: Detectors and Delta Tracking

Posted: Thu Aug 20, 2015 10:15 am
by Jaakko Leppänen
One thing that may be different is the way boundary conditions are handled. Instead of actual reflections or translations, Serpent always uses coordinate transformations (which is the reason why repeated boundary conditions can be used only with surface types that make up a regular lattice). The fastest way to do this is to let the neutron fly to it's tentative collision site, and then shift it back to the geometry. If the geometry is small (pin-cell or similar) it can cross several outer boundaries within a single track, without having to stop each time the boundary is crossed.

The problem is that this approach doesn't work with surface current detectors, because crossings for the part of the track extending beyond the geometry cannot be accounted for. The solution is to stop the out-going track at the outer boundary, and apply the coordinate transformation there. This also changes the random number sequence.

So if in one test case you have surface current detectors defined, you will see statistical differences in the results. The same thing applies to things like ADF's and time-dependent simulation.

Re: Detectors and Delta Tracking

Posted: Mon Aug 24, 2015 8:22 pm
by andrew.hall
Jaakko,

Thanks for the quick reply. This was good information to know. However, I don't believe this is what was causing the difference as both my cases were either using detectors or not.

We went back and performed a few additional calculations and this is what we found:

-With Serpent2, both the fine mesh and coarse mesh 3D assembly (same global geometry) produce the same eigenvalue. This includes using the same random number seed, set dt 1 and use of current detectors.

-With Serpent1, the fine mesh and coarse mesh 3D assembly (same global geometry) produces different eigenvalues. Once again using the same random number seed, set dt 1 and current detectors.

The only different between the Serpent1 and Serpent2 inputs is the "set micro egrid" card. To clarify the fine and coarse mesh results, the coarse mesh corresponds to using 34 gcu regions and 35 current detectors while the fine mesh corresponds to using 170 gcu regions and 171 current detectors. The overall geometry is the same, just the fine mesh involves modeling more gcus and surfaces.

Was there a change implemented between Serpent1 and Serpent2 that causes the random number seed to change in Serpent1 but not in Serpent2? This seems to be what's happening. Was the current detector methodology changed? I know that with Serpent2, my cases produced the same eigenvalue whether current detectors were used or not. However, I did not test this in Serpent1. Any help is appreciated.

Thanks,
Andrew

Re: Detectors and Delta Tracking

Posted: Tue Aug 25, 2015 5:38 pm
by Jaakko Leppänen
It looks like Serpent 1 always stops the track at the outer geometry boundary, while Serpent 2 only does this in certain situations. Try adding "return 0.0" at the beginning of stopatboundary.c in Serpent 1 to see if this has any impact on the results.

Re: Detectors and Delta Tracking

Posted: Mon Aug 31, 2015 9:45 pm
by andrew.hall
I added "return 0.0" at the beginning of stopatboundary.c as you suggested. Here are the results:

Original executable:
Coarse mesh eigenvalue: 1.04082 +- 0.00032
Fine mesh eigenvalue: 1.04041 +- 0.00034

Modified executable (return 0.0):
Coarse mesh eigenvalue: 1.04163 +- 0.00023
Fine mesh eigenvalue: 1.04173 +- 0.00021

Your addition did modify the results. There is still a small difference between the two cases. Do you still believe this difference is due to the boundary treatment?

Re: Detectors and Delta Tracking

Posted: Tue Sep 01, 2015 11:20 am
by Jaakko Leppänen
Actually, another thing I completely missed earlier is the sampling of source distribution. By default the source points are sampled uniformly over the geometry, and points that land on fissile material are accepted. If the outer geometry boundary is different, so is the initial source distribution, and so is the random number sequence.

Have you tried overriding the initial source guess with a point source or something like that?