PAOFLOW.transport.calculators.current#

Functions#

build_bias_grid(vmin, vmax, nv)

Construct a linear bias voltage grid.

fermi_dirac(E, mu, sigma)

Compute the Fermi-Dirac distribution.

locate(xx, x)

Locate the index j in xx such that xx[j] <= x < xx[j+1].

compute_current_vs_bias(egrid, transm, vgrid, mu_L, ...)

Compute current I(V) as a function of bias using Landauer formula.

Module Contents#

PAOFLOW.transport.calculators.current.build_bias_grid(vmin, vmax, nv)[source]#

Construct a linear bias voltage grid.

Parameters:
  • vmin (float) – Minimum bias value.

  • vmax (float) – Maximum bias value.

  • nv (int) – Number of bias points.

Returns:

`vgrid` – Bias voltage values.

Return type:

ndarray

PAOFLOW.transport.calculators.current.fermi_dirac(E, mu, sigma)[source]#

Compute the Fermi-Dirac distribution.

Parameters:
  • E (ndarray) – Energy values.

  • mu (float) – Chemical potential.

  • sigma (float) – Broadening factor (eV).

Returns:

`f` – Fermi-Dirac values.

Return type:

ndarray

PAOFLOW.transport.calculators.current.locate(xx, x)[source]#

Locate the index j in xx such that xx[j] <= x < xx[j+1].

Parameters:
  • xx (ndarray) – Monotonic array (ascending or descending) of values.

  • x (float) – Value to locate within the array.

Returns:

`j` – Index satisfying xx[j] <= x < xx[j+1].

Return type:

int

Raises:

ValueError – If the value is outside the bounds of the array.

PAOFLOW.transport.calculators.current.compute_current_vs_bias(egrid, transm, vgrid, mu_L, mu_R, sigma)[source]#

Compute current I(V) as a function of bias using Landauer formula.

Parameters:
  • egrid (ndarray) – Energy grid.

  • transm (ndarray) – Transmittance on the energy grid.

  • vgrid (ndarray) – Bias voltages.

  • mu_L (float) – Left chemical potential coefficient.

  • mu_R (float) – Right chemical potential coefficient.

  • sigma (float) – Broadening parameter (smearing width, in eV).

Returns:

`currents` – Current at each bias voltage.

Return type:

ndarray

Notes

Implements:

\[I(V) = \int dE \; T(E) [f(E - \mu_L) - f(E - \mu_R)]\]

The integration mesh is refined to resolve the energy window around the chemical potentials.