Thermodynamical functions (quanguru.QuantumToolbox.thermodynamics)#

Contains methods to calculate certain quantities used in thermal states, open systems, and quantum thermodynamics. TODO update docstring examples and write some tests after writing some tutorials

Functions#

nBarThermal(angFreq, temp[, hbar, kb])

Calculates average excitation number \bar{n}(T) := 1/(e^{\hbar \omega / k_{b}T} - 1) of a bosonic field with frequeny \omega at a temperature T.

qubitPolarisation(freq, temp)

Returns the polarisation \langle\hat{\sigma}_{z}\rangle := P_{1} - P_{0} of a qubit with frequency \omega in a thermal state of temperature T.

HeatCurrent(Lindbladian, Hamiltonian, denMat)

Calculates the heat current \mathcal{J}:=Tr(\dot{\rho}\hat{H}), where \dot{\rho} := \hat{\mathcal{L}}\rho is obtained using the given Lindbladian \hat{\mathcal{L}}.

Function Name

Docstrings

Examples

Unit Tests

Tutorials

nBarThermal

      ✅

    ❌

    ❌

    ❌

qubitPolarisation

      ✅

    ❌

    ❌

    ❌

HeatCurrent

      ✅

    ❌

    ❌

    ❌

nBarThermal(angFreq: float, temp: float, hbar: float = 1.0, kb: float = 1.0) float[source]#

Calculates average excitation number \bar{n}(T) := 1/(e^{\hbar \omega / k_{b}T} - 1) of a bosonic field with frequeny \omega at a temperature T. Boltzmann and reduced Planck constants are by default \hbar = k_{B} = 1. TODO Physical constants’ default values should be connected to simUnits.

Parameters
  • angFreq (float) – (angular) frequency of the bosonic field

  • temp (float) – temperature

  • hbar (float) – reduced Planck’s constant

  • kb (float) – Boltzmann constant

Returns

Average excitation number

Return type

float

Raises

ValueError – If average number is infinite.

Examples

# TODO

qubitPolarisation(freq: float, temp: float) float[source]#

Returns the polarisation \langle\hat{\sigma}_{z}\rangle := P_{1} - P_{0} of a qubit with frequency \omega in a thermal state of temperature T. P_{1} and P_{0} are excited and ground state populations satisfying P_{1} + P_{0} = 1, and thermal state populations also satisfy \frac{P_{1}}{P_{0}} := e^{\omega/T}.

Parameters
  • freq (float) – frequency of the qubit

  • temp (float) – temperature of the qubit

Returns

qubit polarisation, i.e. difference betwennn ground and excited state populations.

Return type

float

Examples

# TODO

HeatCurrent(Lindbladian: Union[scipy.sparse._base.spmatrix, numpy.ndarray], Hamiltonian: Union[scipy.sparse._base.spmatrix, numpy.ndarray], denMat: Union[scipy.sparse._base.spmatrix, numpy.ndarray]) float[source]#

Calculates the heat current \mathcal{J}:=Tr(\dot{\rho}\hat{H}), where \dot{\rho} := \hat{\mathcal{L}}\rho is obtained using the given Lindbladian \hat{\mathcal{L}}. Here, \hat{H} is the system Hamiltonian, and the time derivative of density matrix is \dot{\rho}mathcal{L}. It does not strictly speaking have to be a Lindbladian but any combination of terms from a Liouvillian. Disclaimer: physical meaning of those terms is not and cannot be interpreted by this function. TODO Write a bit of the theory here to better explain this function.

Parameters
  • Lindbladian (Matrix) – a Lindbladian or any combination of terms from a Liouvillian

  • Hamiltonian (Matrix) – Hamiltonian of the system

  • denMat (Matrix) – Density matrix (state) of the system

Returns

Heat current

Return type

float

Examples

# TODO