nanotools.current module

Two-probe transport calculator.

class nanotools.current.Current(center, left=None, right=None, left_equal_right: bool = False, dos=NOTHING, eta=<Quantity(1e-06, 'hartree')>, transport_axis: int = -1, classname: str = NOTHING, Iup: float = 0.0, Idw: float = 0.0, temperature=<Quantity(300.0, 'kelvin')>)[source]

Bases: Transmission

The Current class manages the workflow of calculating charge currents in a two-probe system.

Iup

spin-up charge current

Type:

float

temperature
Type:

pint.registry.Quantity

calc_charge_current(T=None)[source]

Calculates charge current.

This method first computes the transmission of the given two-probe system, and then integrates across the bias window (Landauer-Büttiker formula) to get the current. This method triggers the nanodcalplus executable.

Parameters:

T (float) – temperature

Returns:

total current and its physical unit. Iup, Idw, unit (tuple[float, float, string]): spin-resolved currents in the collinear spin case, and the unit.

Return type:

I, unit (tuple[float, string])

get_charge_current(T=None)[source]

Calculate charge current. When calling this method, the transmission calculation is assumed complete already. This method integrates the transmission across the bias window (Landauer-Büttiker formula) to get the current.

Parameters:

T (float) – temperature

Returns:

total current and its physical unit. Iup, Idw, unit (tuple[float,float,string]): spin-resolved currents in the collinear spin case, and the unit.

Return type:

I, unit (tuple[float,string])