sisl_toolbox.btd.RealSpaceElectrode
- class sisl_toolbox.btd.RealSpaceElectrode
Bases:
ElectrodeElectrode with a real-space self-energy
Used for electrodes with more than one semi-infinite direction. The rows of the self-energy are the orbitals of the real-space coupling region, i.e. matching
se.real_space_coupling().- Parameters:
se – the real-space self-energy calculator (
sisl.physics.RealSpaceSEorsisl.physics.RealSpaceSI), or a Siesta/TBtrans GF file (tbtgfSileTBtrans) containing the real-space self-energies (see the bulk and coupling arguments ofsisl.physics.RealSpaceSE.self_energy).name – name of the electrode, see
Electrode
Methods
bulk_matrix(E[, k, dtype, format])Return \(E\mathbf S - \mathbf H\) of the real-space coupling region
from_fdf(fdf, name[, prefix, mu, use_gf, ...])Create the electrode from the
%block TS.Elec.<name>in an fdf filese2broadening(SE)Convert the self-energy SE to the broadening matrix, see
sisl.physics.SelfEnergy.se2broadeningself_energy(E[, k])Return the real-space self-energy of the coupling region
Attributes
Imaginary part used for the self-energy calculation
Whether
bulk_matrixis implemented (always true)- classmethod from_fdf(fdf, name, prefix='TBT', mu=None, use_gf=False, downfold=True)
Create the electrode from the
%block TS.Elec.<name>in an fdf fileThe returned class depends on the content of the block:
a single
semi-inf-direction(e.g.-a3) returns aBlochElectrodeusing asisl.physics.RecursiveSIself-energy, or theGFfile (when use_gf is true).multiple
semi-inf-direction(e.g.aborabc) returns aRealSpaceElectrodeusing theGFfile. This requires use_gf, since the real-space self-energy cannot be created from the fdf file (create aRealSpaceElectrodewith asisl.physics.RealSpaceSEinstead).
When downfold is true, and the electrode is not (fully) in the device region, the above electrode is (partially) downfolded into the device region, and a
DownfoldElectrodeis returned. This reads the device Hamiltonian (TBT.HS) and the other electrodes (TS.Elecs) to determine the downfolding region, seedownfold_partitionandDeviceGreen.from_fdffor the fdf flags used. The downfolding region is found for atoms or orbitals according to theatom+/orb+prefix ofTBT.BTD.Pivot.Elec.<name>(orTBT.BTD.Pivot.Elecs), defaulting to atoms.The electrode Hamiltonian is shifted by
delta-Efand the chemical potential. A GF file should already contain these shifts. File names are relative to the directory of the fdf file.Other options from the fdf file are stored in the
infoattribute:bulk: whether the electrode Hamiltonian is used in the electrode region (true), or the device Hamiltonian (false), in the downfolding region, or the device region (for electrodes fully inTBT.Atoms.Device)dEf: thedelta-Efshift of the electrode Hamiltonianmu: the chemical potential shiftchemical_potential: name of the chemical potential (or None)position: theelectrode-positionvalue (or None)V_fraction: the fraction of the bias in the electrode couplingssemi_inf: the semi-infinite directions (sisl notation, e.g.["-c"])na: number of atoms of the electrode in the device (including Bloch expansions)gf: theGFfile name (or None)
When downfold is true, the orbs attribute holds the orbitals of the device Hamiltonian where the self-energy is placed (the electrode orbitals for electrodes fully in the device region).
- Parameters:
fdf (SileLike) – fdf file to read the parameters from
name (str) – name of the electrode, i.e. the block
TS.Elec.<name>prefix (Literal['TBT', 'TS']) – which prefix to use, if TBT it will prefer TBT prefix, but fall back to TS prefixes. If TS, only these prefixes will be used.
mu (Optional[float]) – chemical potential of the electrode [eV], if None it is read from the
%block TS.ChemPot.<chemical-potential>(and the bias). As in TranSiesta,chemical-potentialdefaults to the only chemical potential inTS.ChemPots, or the one named as the electrode. WithoutTS.ChemPots,LeftandRightareV/2and-V/2. WithoutTBT.ChemPots(andTS.ChemPots) and no bias, TBtrans uses a single chemical potential at 0 for all electrodes.use_gf (bool) – whether the self-energies are read from the
GFfile of the block (GForTBT.Elec.<name>.GF), otherwise they are calculated in memory (theGFfile is ignored). Electrodes without aGFfile are always calculated in memory.downfold (bool) – whether the electrode is downfolded into the device region (unless it is fully in the device region). Use false to get the electrode itself, e.g. for
DeviceGreen.from_tbt.
- Return type:
- bulk_matrix(E, k=(0, 0, 0), *, dtype=np.complex128, format='array', **kwargs)[source]
Return \(E\mathbf S - \mathbf H\) of the real-space coupling region
For real energies,
etais added to E. For GF files, the energy (and \(\mathbf H\), \(\mathbf S\)) of the file is used. SeeElectrode.bulk_matrixfor the arguments.
- se2broadening(SE)[source]
Convert the self-energy SE to the broadening matrix, see
sisl.physics.SelfEnergy.se2broadening
- self_energy(E, k=(0, 0, 0), **kwargs)[source]
Return the real-space self-energy of the coupling region
- property has_bulk: bool
Whether
bulk_matrixis implemented (always true)