Skip to content

Draft: Impact Ionization: Find Field Edge with Binary Search

Simon Spannagel requested to merge binary_search into master

This Mr implements a subsampling of individual charge carrier steps in case a strong electric field gradient is found. The edge position within the step is calculated using an efficient binary search with nanometer step width.

The calculated fraction of the step propagated in the high-field region is then sued to scale the step length used to calculate the local gain factors. Here, the higher of the two field values (pre- or post- step) is then taken, making this a more precise estimate both for steps into but also out of the gain region.

There are a few open questions and items to address:

  • I reintroduced the threshold field to have a handle on when we consider something a high-field region, and also what edge value to search for. Does this make sense?
  • We could think of placing the secondaries either at pre- or post-step positions depending on where the higher field is (stepping into or out of the high-field region)
  • The entire propagation code becomes a bit spaghetti-like, and I'd love suggestions on how to nicely refactor this into some farfalle.
  • We currently have quite some performance impact, not necessarily by the binary search (just some field lookups) but by impact ionization in general. Do be inverstigated
  • We should benchmark this in terms of physics performance. @pschutze ?

P.S.: MR 1000 🎉

Merge request reports