tkwant.leads.add_voltage¶
-
tkwant.leads.
add_voltage
(syst, lead, phase)[source]¶ Add a time-dependent voltage to a lead.
Add a lead unit cell to the
syst
wherelead
is attached, and couple this tosyst
with a time-dependent hopping that effectively adds a voltage to the lead.- Parameters
syst (
kwant.builder.Builder
) – The central system, with its leads already attached. Modified on return.lead (int) – The number of the lead on which to apply the voltage.
phase (callable) – Function specifying the anti-derivative of the voltage. Takes takes the same extra arguments as the Hamiltonian value functions, starting with the time. Returns either a scalar or a one-dimensional sequence: one element per orbital on a site. Must return 0 (or a sequence of zeros) at time 0.
- Returns
The sites added to the system.
- Return type
- Raises
ValueError – If the
phase
argument is not callable, or if sites in the lead interface belong to different domains
Notes
Formally, this function adds a single lead cell to the system and attaches the previous lead interface to it with a hopping \((1 \otimes \exp[iX(t)])V\), where V is the hopping between lead unit cells, 1 is the unit matrix over the interface sites and X(t) is a square diagonal matrix over the orbitals on one site, specified by the
phase
parameter. This corresponds to adding a voltage X’(t) to each site in the lead. In the most common case of 1 orbital per site X(t) is a scalar.This function only works if the lead was attached with
attach_lead
,If any exceptions are raised in this function there are no guarantees that the system was not modified.