Open sethrj opened 3 years ago
@amandalund and @stognini : you ran some instances of TestEm3 with and without spline interpolation, and with refined energy grids. Can you post/reference any of the results/analysis when you get a chance?
Here is the test I currently have. Celeritas is showing slightly larger differences. Plot details:
(spline_plot – X) / spline_plot
I had run TestEm3 with Celeritas with refined energy grids (1e7 primaries, 1mm production cuts): Default is 7 bins/decade, and the error is relative to the 112 bins/decade result.
Just ran a short test on Summit. The input, cpu run script, and results are in benchmarks/testem3-demo-loop/g4app-summit/, but here is the gist of it:
Spline | Avg. wall time [s] |
---|---|
ON | 176.2 |
OFF | 170.5 |
Time penalty is roughly 3%
.
Nice! I'll do a run with increased data points for comparison to see what the penalty is there.
I've added an interface to our input to allow adjustment of the number of data points: see https://github.com/celeritas-project/celeritas/pull/414 .
Let's wait until refactoring the physics to use standard 'builders' before doing this.
Spline interpolation (or some other nonlinear interpolation) is used in Geant4 by :
calc_energy_loss
)Research why it's necessary (the energy loss one provides an explanation of the consequences of linear interpolation, although it seems to me an alternate interpolation scheme such as log-log might have the same effect with less overheard) and compare spline interpolation with alternatives.