RealTimeTransport 1.0.0
Real-time simulation of quantum transport processes
Loading...
Searching...
No Matches
Utility.h File Reference

Go to the source code of this file.

Enumerations

enum class  RealTimeTransport::Eta : int { Minus = 0 , Plus = 1 , _count }
 Particle-hole \( \eta \) index. More...
 
enum class  RealTimeTransport::Keldysh : int { Minus = 0 , Plus = 1 , _count }
 Keldysh index \( p \). More...
 

Functions

BlockMatrix RealTimeTransport::computeSuperfermion (Keldysh p, Eta eta, int l, const std::unique_ptr< Model > &model)
 Computes a superfermion for a given model.
 
std::vector< BlockMatrix > RealTimeTransport::computeAllSuperfermions (Keldysh p, const std::unique_ptr< Model > &model)
 Computes all creation or annihilation superfermions (for p=+,- respectively) for a given model.
 
SciCore::Complex RealTimeTransport::computeGamma (Eta eta, int r, int l1, int l2, const std::unique_ptr< Model > &model)
 Convenience function to compute \( \Gamma_{η r l_1 l_2} \).
 
BlockDiagonalMatrix RealTimeTransport::computeLiouvillian (const std::unique_ptr< Model > &model)
 Returns \( -i L \) for a given specific model, where \( L = [H, \bullet] \) denotes the bare Liouvillian.
 
BlockDiagonalMatrix RealTimeTransport::computeSigmaInfty (const std::vector< BlockMatrix > &superfermion, const std::vector< BlockMatrix > &superfermionAnnihilation, const std::unique_ptr< Model > &model)
 Returns the \( \delta \)-singular part \( -i \Sigma_\infty \) of the infinite temperature memory kernel for a given fermionic wideband model.
 
Model::SuperRowVectorType RealTimeTransport::computeSigmaInftyCurrent (int r, const std::vector< BlockMatrix > &superfermionAnnihilation, const std::unique_ptr< Model > &model)
 Returns the \( \delta \)-singular part of the current kernel, \( -i \Sigma^{(I_r)}_{\infty} \), for a given fermionic wideband model.
 
int RealTimeTransport::singleToMultiIndex (Eta eta, int l, const std::unique_ptr< Model > &model)
 Converts multiple single indices into a multiindex.
 
Indices RealTimeTransport::multiToSingleIndices (int i, const std::unique_ptr< Model > &model)
 Converts a multiindex into multiple single indices.
 

Enumeration Type Documentation

◆ Eta

enum class RealTimeTransport::Eta : int
strong
Enumerator
Minus 

\( \eta=- \)

Plus 

\( \eta=+ \)

◆ Keldysh

enum class RealTimeTransport::Keldysh : int
strong
Enumerator
Minus 

\( p=- \)

Plus 

\( p=+ \)

Function Documentation

◆ computeSuperfermion()

BlockMatrix RealTimeTransport::computeSuperfermion ( Keldysh p,
Eta eta,
int l,
const std::unique_ptr< Model > & model )

This function computes superfermionic creation/annihilation operators for given models. The superfermions are superoperators defined as $$ D^p_{\eta l} \bullet = \frac{1}{\sqrt{2}} ( d_{\eta l} \bullet + p (-\mathbb{1})^n \bullet (-\mathbb{1})^n d_{\eta l} ) $$ where \( \bullet \) denotes some operator argument.

Parameters
modelThe model for which the superfermion is computed.
pRepresents creation or annihilation.
etaEither "-" or "+".
lIndex for internal degrees of freedom (always \( \geq 0 \) !).

◆ multiToSingleIndices()

Indices RealTimeTransport::multiToSingleIndices ( int i,
const std::unique_ptr< Model > & model )

Transforms the multiindex \(i\) into two single indices \(\eta\) and \(l\) which are returned as a tuple. The function can be used as

const auto [eta, l] = multiToSingleIndices(model, i);