tkwant.onebody.kernels.PerturbationInterpolator¶
-
class
tkwant.onebody.kernels.
PerturbationInterpolator
(syst, time_name, time_start, params=None, interpolation_type=Interpolation)¶ A class to extract and interpolate W(t).
This class can be used like tkwant.onebody.kernel.PerturbationExtractor, to calculate W(t) and the matrix-vector product W(t) * ket. Interpolation is done only for performance reasons, as W(t) from Kwant is slow to evaluate.
- 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.interpolation_type (optional) – The interpolator class
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, const double complex[:] 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
-
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
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