miller_gain

photonforge.miller_gain(voltages, *, breakdown_voltage, exponent=3.0, punch_through_voltage=0.0, max_multiplication=1000.0)[source]

Tabulate Miller’s empirical multiplication curve.

\[M(V) = \left[1 - \left(\frac{V}{V_{\rm br}}\right)^n\right]^{-1}\]

Below punch_through_voltage the depletion region has not reached the multiplication layer, so the gain is held at 1. The curve is clipped at max_multiplication because it diverges at breakdown and a compact model should not return infinity.

All voltages are reverse-bias magnitudes, so pass positive numbers.

Parameters:
  • voltages (Sequence[Annotated[float, units='V']]) – Reverse bias grid to tabulate over, in V.

  • breakdown_voltage (Annotated[float, exclusiveMinimum=0, units='V']) – \(V_{\rm br}\), in V.

  • exponent (Annotated[float, exclusiveMinimum=0]) – \(n\), typically 2 to 6. Fit it to a measured gain curve.

  • punch_through_voltage (Annotated[float, minimum=0]) – Below this the gain is 1, in V.

  • max_multiplication (Annotated[float, exclusiveMinimum=0]) – Clip value near breakdown.

Returns:

photonforge.Interpolator of \(M\) against reverse bias, clamped outside the grid, ready to pass as multiplication.

Return type:

Interpolator