RedfieldRelaxationTensor#

Redfield Tensor

Class Details#

class quantarhei.qm.liouvillespace.redfieldtensor.RedfieldRelaxationTensor(ham: Hamiltonian, sbi: SystemBathInteraction, initialize: bool = True, cutoff_time: float | None = None, as_operators: bool = False, name: str = '', secular: bool = False)[source]#

Bases: RelaxationTensor

Redfield Relaxation Tensor

Unlike Foerster or Lindblad tensors (which operate entirely in the site basis), the Redfield tensor is computed in the eigenbasis of the Hamiltonian. The constructor diagonalizes the Hamiltonian internally and stores the result in that eigenbasis.

If you obtain this tensor via OpenSystem.get_RelaxationTensor(), it is automatically back-transformed to the site basis before being returned — no extra steps are needed.

If you construct it directly, you must back-transform explicitly:

RRT = RedfieldRelaxationTensor(ham, sbi, secular=True)
_, SS = numpy.linalg.eigh(ham._data)
S1 = numpy.linalg.inv(SS)
RRT.transform(S1, inv=SS)
Parameters:
  • ham (Hamiltonian) – Hamiltonian of the system.

  • sbi (SystemBathInteraction) – Object specifying the system-bath interaction

  • initialize (bool) – If True, the tensor will be immediately calculated.

  • cutoff_time (float) – Time in femtoseconds after which the integral kernel in the definition of the relaxation tensor is assumed to be zero.

  • as_operators (bool) – If True the tensor will not be constructed. Instead a set of operators whose application is equal to the application of the tensor will be defined and stored.

  • secular (bool) – If True, the tensor is secularized after construction.

property Km: Any#
property Lm: Any#
property Ld: Any#
dim: int#
cutoff_time: float | None#
apply(oper: Any, target: Any = None, copy: bool = True) Any[source]#

Applies the relaxation tensor on a superoperator

get_population_rate(N: int, M: int) Any[source]#

Returns the relaxation rate between states N -> M

get_dephasing_rate(N: int, M: int) Any[source]#

Returns the dephasing rate of a coherence between states N and M

transform(SS: ndarray, inv: ndarray | None = None) None[source]#

Transformation of the tensor by a given matrix

This function transforms the Operator into a different basis, using a given transformation matrix.

Parameters:
  • SS (matrix, numpy.ndarray) – transformation matrix

  • inv (matrix, numpy.ndarray) – inverse of the transformation matrix

initialize() None[source]#

Initializes the Redfield tensor with values

convert_2_tensor() None[source]#

Converts internally the operator representation to a tensor one

Converst the representation of the relaxation tensor through a set of operators into a tensor representation.