bdr

Stoner.analysis.fitting.models.tunnelling.bdr(V, A, phi, dphi, d, mass)[source]

BDR model tunnelling.

Parameters
  • V (array) – ias voltage

  • A (float) – barrier area in m^2

  • phi (float) – average barrier height in eV

  • dphi (float) – change in barrier height in eV

  • d (float) – barrier width in angstrom

  • mass (float) – effective electron mass as a fraction of electron rest mass

Returns

Data for tunneling rate according to the BDR model.

Note

See Brinkman et. al. J. Appl. Phys. 41 1915 (1970) or Tuan Comm. in Phys. 16, 1, (2006)

Example

"""Example of nDimArrhenius Fit."""
from numpy import linspace, ones_like
from numpy.random import normal

from Stoner import Data
from Stoner.analysis.fitting.models.tunnelling import BDR, bdr

# Make some data
V = linspace(-10, 10, 1000)
I = bdr(V, 2.5, 3.2, 0.3, 15.0, 1.0) + normal(size=len(V), scale=1.0e-3)
dI = ones_like(V) * 1.0e-3

# Curve fit
d = Data(V, I, dI, setas="xye", column_headers=["Bias", "Current", "Noise"])

d.curve_fit(bdr, p0=[2.5, 3.2, 0.3, 15.0, 1.0], result=True, header="curve_fit")
d.setas = "xyey"
d.plot(fmt=["r.", "b-"])
d.annotate_fit(
    bdr,
    x=0.6,
    y=0.05,
    prefix="bdr",
    fontdict={"size": "x-small", "color": "blue"},
)

# lmfit
d.setas = "xy"
fit = BDR(missing="drop")
p0 = fit.guess(I, x=V)
for p, v, mi, mx in zip(
    ["A", "phi", "dphi", "d", "mass"],
    [2.500, 3.2, 0.3, 15.0, 1.0],
    [0.100, 1.0, 0.05, 5.0, 0.5],
    [10, 10.0, 2.0, 30.0, 5.0],
):
    p0[p].value = v
    p0[p].bounds = [mi, mx]
d.lmfit(fit, p0=p0, result=True, header="lmfit")
d.setas = "x...y"
d.plot(fmt="g-")
d.annotate_fit(
    fit,
    x=0.2,
    y=0.05,
    prefix="BDR",
    fontdict={"size": "x-small", "color": "green"},
)

d.ylabel = "Current"
d.title = "BDR Model test"
d.tight_layout()