getelec.transmission_solutions
Closed-form and semiclassical transmission.
These are the solutions you can write down, as opposed to the numerical
integration in getelec.transmission_solver. Three of them:
AiryTriangular-- the exact solution for a pure triangular barrier, in terms of Airy functions. No image charge, so it is not the barrier a real metal presents, but it is the one case where the Schrodinger equation has a closed form, which makes it the natural check on a numerical solver.WKB-- the semiclassical result for the Schottky-Nordheim barrier. The turning points are roots of a quadratic, so the Gamow exponent needs only a quadrature, and Gauss-Chebyshev matches its endpoint behaviour exactly.calculate_gamow_numeric()-- the same semiclassical physics for a barrier of any shape, where the turning points have to be found numerically. Used as the reference function for the learned solvers, whose job is to correct it.
All of them are cheap. None of them is exact for a real barrier: WKB is accurate to a factor of order unity deep in the tunnelling regime, which is fine for exploration and for use as a reference, and not fine for a published number.
Semiclassical (WKB) transmission for the Schottky-Nordheim barrier.
The Gamow exponent is
G = sqrt(2m)/hbar * integral from x1 to x2 of sqrt(V(x) - E) dx,
with V(x) = E_F + phi - F x - k_e / (4x) and x1, x2 the classical
turning points, i.e. the roots of F x^2 + (E - E_F - phi) x + k_e / 4.
Transmission then follows from the Kemble form, T = 1 / (1 + exp(2G)).
The integrand is sqrt(F (x2 - x)(x - x1) / x), which vanishes like a
square root at both turning points. Gauss-Chebyshev quadrature of the second
kind carries exactly that weight, so it converges geometrically where an
adaptive general-purpose rule fights the endpoint behaviour: 64 nodes give
about 12 significant figures. It is also fully vectorised over energy, with
no Python-level loop.
Above the barrier top the turning points become complex. There the exponent
is continued using the inverted-parabola (Kemble) approximation at the
barrier maximum, so T -> 1 smoothly instead of the formula breaking down.
Parameters
fermi_level, work_function, electric_field : float Barrier parameters (eV, eV, V/nm). n_nodes : int, default 64 Quadrature nodes. 64 is converged to round-off for typical parameters.
Gamow exponent G at each energy (dimensionless).
Exposed separately because G, not T, is the quantity that appears in Fowler-Nordheim analysis and in slope/intercept fitting.
Parameters
energies : np.ndarray potential : potential_barrier.Barrier, optional If given, its parameters take precedence over the ones stored on this solver.
Transmission probability at each energy, via the Kemble form.
Inherited Members
Exact transmission through a pure triangular barrier, via Airy functions.
For V(x) = E_F + phi - F x outside the metal and V = 0 inside, with
no image term -- the barrier of
~getelec.potential_barrier.TriangularPotential -- the Schrodinger
equation outside is Airy's equation, so the transmission has a closed form.
A plane wave in the metal, matched at the surface to the outgoing wave
Bi + i Ai outside, gives
T = (4k / (pi beta)) / [ (k/beta)^2 (Ai^2 + Bi^2) + Ai'^2 + Bi'^2 + 2k / (pi beta) ]
with k the wavevector in the metal, beta = (F / (hbar^2/2m))^(1/3),
and the Airy functions evaluated at the surface, zeta = beta (E_F + phi - E) / F.
The last term is the Wronskian Ai Bi' - Ai' Bi = 1/pi. It is negligible in
deep tunnelling, where Bi is exponentially large, and it is what takes
the result to the step-barrier value 4 k q / (k + q)^2 far above the
barrier, q being the wavevector just outside the surface.
This is not the barrier a metal presents -- dropping the image charge removes the Schottky lowering, so it overestimates the barrier and underestimates emission. Its value is as a check: it is the one case where an exact answer exists, so it pins the numerical solver against something that is not another numerical solver.
Parameters
fermi_level, work_function, electric_field : float eV, eV, V/nm. Read from the barrier when one is passed.
Transmission probability at each energy.
Inherited Members
Gamow exponent for an arbitrary barrier, by numerical quadrature.
Parameters
potential : potential_barrier.Barrier energies : array_like Energies in eV. n_scan : int Points used to bracket the turning points. n_nodes : int Quadrature nodes. 24 is ample for a reference function.
Returns
np.ndarray
G at each energy. Negative above the barrier top, where it is
continued with the inverted parabola at the maximum so that G passes
smoothly through zero instead of jumping.
ln D from the Kemble form, using the numerical Gamow exponent.
Evaluated as -logaddexp(0, 2G), exact in both tails; taking log of
the probability would bottom out near -745 and then return -inf, which
is exactly where the residual is needed.
ln D from the semiclassical Kemble form, evaluated stably.
ln(1/(1+exp(2G))) is -logaddexp(0, 2G), which is exact in both tails.
Taking log of the probability instead bottoms out at about -745 and
then returns -inf, which would make the residual undefined exactly where
the table is most useful.