tkwant.onebody.kernels.PerturbationExtractor¶
-
class
tkwant.onebody.kernels.
PerturbationExtractor
(syst, time_name, time_start, params=None)¶ Extract the time-dependent perturbation to the Hamiltonian.
The total Hamiltonian can be split into two parts: the stationary part and the time-dependent perturbation, i.e. H(t) = H_0 + W(t). This routine extracts the W(t) part from the Kwant system that specifies the H(t).
- Parameters
syst (
kwant.builder.FiniteSystem
) – The system from which to extract the time-dependent perturbation.time_name (str) – The name of the time argument. Only sites with Hamiltonian value functions with the argument name time_name are extracted into W(t).
time_start (float) – The initial time.
params (dict, optional) – Extra arguments to pass to the Hamiltonian of
syst
, excluding time.
Notes
By definition the perturbation is defined with respect to the initial time. The perturbation should be therefore zero for times t < time_start. This is not inforced by this routine however, but W(t) is always evaluated with the time argument it gets.
Methods
-
apply
(self, double time, ket, out=None)¶ Evaluate the matrix-vector product W(t) @ ket for the given time.
- Parameters
time (int or float) – Time argument, must be equal or larger than time_start.
out (
numpy.ndarray
, optional) – Sparse matrix with to perform the operation in-place.
- Returns
out – The product W(t) @ ket. If an
out
argument is given, the operation is performed in-place and the routine returns None.- Return type
numpy.ndarray
or None
-
data
(self, double time, out=None)¶ Return the time-dependent matrix elements.
- Parameters
time (int or float) – Time argument, must be equal or larger than time_start.
out (
numpy.ndarray
, optional) – Data array of the W(t) matrix for operation in-place.
- Returns
out – Data array of the W(t) matrix (W(t).data). If an
out
argument is given, the operation is performed in-place and the routine returns None.- Return type
numpy.ndarray
or None
-
empty
(self)¶ Return an empty W(t) matrix with correct shape and indices.
- Returns
out – An “empty” W(t) matrix filled with zeros.
- Return type
-
evaluate
(self, double time, out=None)¶ Evaluate the W(t) matrix for the given time t.
- Parameters
time (int or float) – Time argument, must be equal or larger than time_start.
out (
coo_matrix
, optional) – Sparse matrix with to perform the operation in-place.
- Returns
out – The matrix W(t). The size of the W(t) matrix is
size
xsize
, containingnnz
complex entries. If anout
argument is given, the operation is performed in-place and the routine returns None.- Return type
coo_matrix
or None
-
row_col
(self)¶ Return the row and column vectors of the W(t) matrix.
- Returns
row (
np.ndarray
) – Row vector of the W(t) matrix in coo format.col (
np.ndarray
) – Column vector of the W(t) matrix in coo format.
Attributes
-
nnz
¶ The total number of time-dependent matrix elements.
- Returns
nnz – The total number of time-dependent matrix elements, equal to len(W(t).data).
- Return type