tbtsencSileTBtrans¶
-
class
sisl.io.tbtrans.
tbtsencSileTBtrans
(filename, mode='r', lvl=0, access=1, *args, **kwargs)[source]¶ TBtrans self-energy file object with downfolded self-energies to the device region
The \(\Sigma\) object contains all self-energies on the specified k- and energy grid projected into the device region.
This is mainly an output file object from TBtrans and can be used as a post-processing utility for testing various things in Python.
Note that anything returned from this object are the self-energies in eV.
Examples
>>> H = Hamiltonian(device) >>> se = tbtsencSileTBtrans(...) >>> # Return the self-energy for the left electrode (unsorted) >>> se_unsorted = se.self_energy('Left', 0.1, [0, 0, 0]) >>> # Return the self-energy for the left electrode (sorted) >>> se_sorted = se.self_energy('Left', 0.1, [0, 0, 0], sort=True) >>> # >>> # Query the indices in the full Hamiltonian >>> pvt_unsorted = se.pivot('Left').reshape(-1, 1) >>> pvt_sorted = se.pivot('Left', sort=True).reshape(-1, 1) >>> # The following two lines are equivalent >>> Hfull[pvt_unsorted, pvt_unsorted.T] -= se_unsorted[:, :] >>> Hfull[pvt_sorted, pvt_sorted.T] -= se_sorted[:, :] >>> # Query the indices in the device Hamiltonian >>> dpvt_unsorted = se.pivot('Left', in_device=True).reshape(-1, 1) >>> dpvt_sorted = se.pivot('Left', in_device=True, sort=True).reshape(-1, 1) >>> # Following inserts are equivalent >>> Hdev[dpvt_unsorted, dpvt_unsorted.T] -= se_unsorted[:, :] >>> Hdev[dpvt_sorted, dpvt_sorted.T] -= se_sorted[:, :]
Attributes
E
Sampled energy-points in file a_buf
Atomic indices (0-based) of device atoms a_dev
Atomic indices (0-based) of device atoms base_file
File of the current Sile cell
Unit cell in file elecs
List of electrodes file
File of the current Sile geom
The associated geometry from this file geometry
The associated geometry from this file k
Sampled k-points in file kpt
Sampled k-points in file lasto
Last orbital of corresponding atom nE
Number of energy-points in file na
Returns number of atoms in the cell na_b
Number of atoms in the buffer region na_buffer
Number of atoms in the buffer region na_d
Number of atoms in the device region na_dev
Number of atoms in the device region na_u
Returns number of atoms in the cell ne
Number of energy-points in file nk
Number of k-points in file nkpt
Number of k-points in file no
Returns number of orbitals in the cell no_d
Number of orbitals in the device region no_u
Returns number of orbitals in the cell o_dev
Orbital indices (0-based) of device orbitals wk
Weights of k-points in file wkpt
Weights of k-points in file xa
Atomic coordinates in file xyz
Atomic coordinates in file Methods
Eindex
(E)Return the closest energy index corresponding to the energy E
__init__
(filename[, mode, lvl, access])Initialize self. a2p
(atom[, elec])Return the pivoting orbital indices (0-based) for the atoms, possibly on an electrode btd
()Block-sizes for the BTD method in the device region chemical_potential
(elec)Return the chemical potential associated with the electrode elec close
()dir_file
([filename])File of the current Sile eta
(elec)The imaginary part used when calculating the self-energies in eV exist
()Query whether the file exists iter
([group, dimension, variable, levels, root])Iterator on all groups, variables and dimensions. kindex
(k)Return the index of the k-point that is closests to the queried k-point (in reduced coordinates) mu
(elec)Return the chemical potential associated with the electrode elec n_btd
()Number of blocks in the BTD partioning in the device region o2p
(orbital[, elec])Return the pivoting indices (0-based) for the orbitals, possibly on an electrode pivot
([elec, in_device, sort])Return the pivoting indices for a specific electrode read
(*args, **kwargs)Generic read method which should be overloaded in child-classes read_geometry
(*args, **kwargs)Returns Geometry object from this file read_supercell
()Returns SuperCell object from this file self_energy
(elec, E, k[, sort])Return the self-energy from the electrode elec self_energy_average
(elec, E[, sort])Return the k-averaged average self-energy from the electrode elec write
(*args, **kwargs)Generic write method which should be overloaded in child-classes write_geometry
(*args, **kwargs)This is not meant to be used -
E
¶ Sampled energy-points in file
-
Eindex
(E)¶ Return the closest energy index corresponding to the energy
E
Parameters: - E : float or int
if
int
, return it-self, else return the energy index which is closests to the energy.
-
a2p
(atom, elec=None)[source]¶ Return the pivoting orbital indices (0-based) for the atoms, possibly on an electrode
This is equivalent to:
>>> p = self.o2p(self.geom.a2o(atom, True))
Parameters: - atom : array_like or int
atomic indices (0-based)
- elec : str or int or None
electrode to return pivoting indices of (if None it is the device pivoting indices).
-
a_buf
¶ Atomic indices (0-based) of device atoms
-
a_dev
¶ Atomic indices (0-based) of device atoms
-
base_file
¶ File of the current Sile
-
btd
()¶ Block-sizes for the BTD method in the device region
-
cell
¶ Unit cell in file
-
close
()¶
-
dir_file
(filename=None)¶ File of the current Sile
-
elecs
¶ List of electrodes
-
exist
()¶ Query whether the file exists
-
file
¶ File of the current Sile
-
geom
¶ The associated geometry from this file
-
geometry
¶ The associated geometry from this file
-
iter
(group=True, dimension=True, variable=True, levels=-1, root=None)¶ Iterator on all groups, variables and dimensions.
This iterator iterates through all groups, variables and dimensions in the
Dataset
The generator sequence will _always_ be:
- Group
- Dimensions in group
- Variables in group
As the dimensions are generated before the variables it is possible to copy groups, dimensions, and then variables such that one always ensures correct dependencies in the generation of a new
SileCDF
.Parameters: - group :
bool
(True) whether the iterator yields Group instances
- dimension :
bool
(True) whether the iterator yields Dimension instances
- variable :
bool
(True) whether the iterator yields Variable instances
- levels :
int
(-1) number of levels to traverse, with respect to
root
variable, i.e. number of sub-groups this iterator will return.- root :
str
(None) the base root to start iterating from.
Examples
Script for looping and checking each instance.
>>> for gv in self.iter(): ... if self.isGroup(gv): ... # is group ... elif self.isDimension(gv): ... # is dimension ... elif self.isVariable(gv): ... # is variable
-
k
¶ Sampled k-points in file
-
kindex
(k)¶ Return the index of the k-point that is closests to the queried k-point (in reduced coordinates)
Parameters: - k : array_like of float
the queried k-point in reduced coordinates \(]-0.5;0.5]\).
-
kpt
¶ Sampled k-points in file
-
lasto
¶ Last orbital of corresponding atom
-
mu
(elec)¶ Return the chemical potential associated with the electrode elec
-
nE
¶ Number of energy-points in file
-
n_btd
()¶ Number of blocks in the BTD partioning in the device region
-
na
¶ Returns number of atoms in the cell
-
na_b
¶ Number of atoms in the buffer region
-
na_buffer
¶ Number of atoms in the buffer region
-
na_d
¶ Number of atoms in the device region
-
na_dev
¶ Number of atoms in the device region
-
na_u
¶ Returns number of atoms in the cell
-
ne
¶ Number of energy-points in file
-
nk
¶ Number of k-points in file
-
nkpt
¶ Number of k-points in file
-
no
¶ Returns number of orbitals in the cell
-
no_d
¶ Number of orbitals in the device region
-
no_u
¶ Returns number of orbitals in the cell
-
o2p
(orbital, elec=None)[source]¶ Return the pivoting indices (0-based) for the orbitals, possibly on an electrode
Parameters: - orbital : array_like or int
orbital indices (0-based)
- elec : str or int or None
electrode to return pivoting indices of (if None it is the device pivoting indices).
-
o_dev
¶ Orbital indices (0-based) of device orbitals
-
pivot
(elec=None, in_device=False, sort=False)[source]¶ Return the pivoting indices for a specific electrode
Parameters: - elec : str or int
the corresponding electrode to return the self-energy from
- in_device : bool, optional
If
True
the pivoting table will be translated to the device region orbitals- sort : bool, optional
Whether the returned indices are sorted. Mostly useful if the self-energies are returned sorted as well.
Examples
>>> se = tbtsencSileTBtrans(...) >>> se.pivot() [3, 4, 6, 5, 2] >>> se.pivot(sort=True) [2, 3, 4, 5, 6] >>> se.pivot(0) [2, 3] >>> se.pivot(0, in_device=True) [4, 0] >>> se.pivot(0, in_device=True, sort=True) [0, 1] >>> se.pivot(0, sort=True) [2, 3]
-
read
(*args, **kwargs)¶ Generic read method which should be overloaded in child-classes
Parameters: - kwargs :
keyword arguments will try and search for the attribute
read_<>
and call it with the remaining**kwargs
as arguments.
-
read_geometry
(*args, **kwargs)¶ Returns Geometry object from this file
-
read_supercell
()¶ Returns SuperCell object from this file
-
self_energy
(elec, E, k, sort=False)[source]¶ Return the self-energy from the electrode elec
Parameters: - elec : str or int
the corresponding electrode to return the self-energy from
- E : float or int
energy to retrieve the self-energy at, if a floating point the closest energy value will be found and returned, if an integer it will correspond to the exact index
- k : array_like or int
k-point to retrieve, if an integer it is the k-index in the file
- sort : bool, optional
if
True
the returned self-energy will be sorted (equivalent to pivoting the self-energy)
-
self_energy_average
(elec, E, sort=False)[source]¶ Return the k-averaged average self-energy from the electrode elec
Parameters: - elec : str or int
the corresponding electrode to return the self-energy from
- E : float or int
energy to retrieve the self-energy at, if a floating point the closest energy value will be found and returned, if an integer it will correspond to the exact index
- sort : bool, optional
if
True
the returned self-energy will be sorted but not necessarily consecutive in the device region.
-
wk
¶ Weights of k-points in file
-
wkpt
¶ Weights of k-points in file
-
write
(*args, **kwargs)¶ Generic write method which should be overloaded in child-classes
Parameters: - **kwargs :
keyword arguments will try and search for the attribute write_ and call it with the remaining
**kwargs
as arguments.
-
write_geometry
(*args, **kwargs)¶ This is not meant to be used
-
xa
¶ Atomic coordinates in file
-
xyz
¶ Atomic coordinates in file
-