nanotools.scattering module
Scattering states calculator
- class nanotools.scattering.ScatteringStates(center, left=None, right=None, left_equal_right: bool = False, transport_axis: int = -1, energy=<Quantity([0.], 'electron_volt')>, classname: str = NOTHING)[source]
Bases:
Base
ScatteringStates
class.- dos
density of states
- transport_axis
- Type:
int
- left_equal_right
boolean variable indicating whether the two lead structures are identical.
- Type:
bool
- get_bloch(lead, direction, k_long_index=None, k_trans_index=0, energy_index=0, spin=1)[source]
get information about certain Bloch-wave in leads.
- Parameters:
k_trans_index (int) – index of transverse wave vector, see system.kpoint.fractional_coordinates
energy_index (int) – index of energy-point
spin (int) – +1/-1 spin-up/down
k_long_index (int / None) – index of the longitudinal wave vector; if None, take all wave vectors.
lead (str) – in which lead, “left” or “right”
direction (str) – “in”coming or “out”going
- Returns:
dictionary
- get_scatt_wave(lead, k_long_index, k_trans_index=0, energy_index=0, spin=1, **kwargs)[source]
Returns certain wave-function as 3d-array, given incident wave.
- Parameters:
k_trans_index (int) – index of transverse wave vector, see system.kpoint.fractional_coordinates
energy_index (int) – index of energy-point
spin (int) – +1/-1 spin-up/down
k_long_index (int) – index of the longitudinal wave vector
lead (str) – from which lead, “left” or “right”, the incident wave comes
- get_scatter_rate(incoming, outgoing)[source]
Returns scattering rate from an incoming to an outgoing state.
- Parameters:
incoming (dict) – see get_bloch
outgoing (dict) – see get_bloch
- plot_isosurfaces(lead, k_long_index, k_trans_index=0, energy_index=0, spin=1, vals=None, **kwargs)[source]
Plots isosurface of selected wavefunction at given contour-values.
- Parameters:
k_trans_index (int) – index of transverse wave vector, see system.kpoint.fractional_coordinates
energy_index (int) – index of energy-point
spin (int) – +1/-1 spin-up/down
k_long_index (int) – index of the longitudinal wave vector
lead (str) – from which lead, “left” or “right”, the incident wave comes
vals (list of float) – contour values
- solve(energy=None, input='nano_scatt_in', output='nano_scatt_out')[source]
Calculates transmission This method triggers the nanodcalplus executable. Result is stored in self.dos.transmission
- Parameters:
energies (float / iterable) – energy grid over which the transmission is to be calculated. eg. energies=0.1 eg. energies=[0.1,0.2,0.3]