RealTimeTransport 1.0.0
Real-time simulation of quantum transport processes
Loading...
Searching...
No Matches
RealTimeTransport::DoubleDot Class Referencefinal

#include <RealTimeTransport/Models/DoubleDot.h>

This class implements a spinless double quantum dot. The Hamiltonian is given by

\[ H = \epsilon_1 n_1 + \epsilon_2 n_2 + \Omega d_1^\dagger d_2 + \Omega^* d_2^\dagger d_1 + U n_1 n_2. \]

The dots are coupled to the reservoirs via the tunneling Hamiltonian

\[ H_T = \sum_{rl} \int d\omega \sqrt{\frac{\Gamma_{rl}}{2\pi}} (d^\dagger_l a_{rl}(\omega) + a^\dagger_{rl}(\omega) d_l). \]

All operators are represented in the basis \( \ket{00}, \ket{10}=d^\dagger_1 \ket{00}, \ket{01}=d^\dagger_2 \ket{00}, \ket{11} = d^\dagger_1 d^\dagger_2 \ket{00} \).

Public Member Functions

 DoubleDot () noexcept=default
 Default constructor.
 
 DoubleDot (DoubleDot &&other) noexcept=default
 Default move constructor.
 
 DoubleDot (const DoubleDot &other)=default
 Default copy constructor.
 
DoubleDotoperator= (DoubleDot &&other) noexcept=default
 Default move assignment operator.
 
DoubleDotoperator= (const DoubleDot &other)=default
 Default copy assignment operator.
 
 DoubleDot (SciCore::Real epsilon1, SciCore::Real epsilon2, SciCore::Real U, SciCore::Complex Omega, const SciCore::RealVector &T, const SciCore::RealVector &mu, const SciCore::RealVector &Gamma1, const SciCore::RealVector &Gamma2)
 Constructs a new double dot object.
 
SciCore::Real epsilon1 () const noexcept
 Returns the energy of dot 1.
 
SciCore::Real epsilon2 () const noexcept
 Returns the energy of dot 2.
 
SciCore::Real U () const noexcept
 Returns the Coulomb interaction.
 
const SciCore::RealVector & Gamma1 () const noexcept
 Returns the coupling \( \Gamma_{r1} \) between dot 1 and the reservoirs.
 
const SciCore::RealVector & Gamma2 () const noexcept
 Returns the coupling \( \Gamma_{r2} \) between dot 2 and the reservoirs.
 
int dimHilbertSpace () const noexcept override
 The Hilbert space dimension is 4.
 
int numStates () const noexcept override
 There are two single particle states.
 
int numChannels () const noexcept override
 Returns 1 (reservoirs are spinless).
 
int numReservoirs () const override
 Returns the number of reservoirs the system is connected to.
 
OperatorType H () const override
 Returns the Hamiltonian.
 
OperatorType d (int l) const override
 Returns the annihilation operator of the dot \(l=0, 1\).
 
SciCore::Complex coupling (int r, int nu, int l) const override
 Returns the coupling coefficient in the tunneling Hamiltonian. l represents the dot index. nu is not used in this model.
 
const SciCore::RealVector & temperatures () const noexcept override
 Returns the temperatures of the reservoirs the system is connected to.
 
const SciCore::RealVector & chemicalPotentials () const noexcept override
 Returns the chemical potentials of the reservoirs the system is connected to.
 
SupervectorType vectorize (const OperatorType &op) const override
 Vectorizes an operator into its supervector form.
 
OperatorType operatorize (const SupervectorType &supervector) const override
 Transforms a supervector back into operator form.
 
const std::vector< int > & blockDimensions () const noexcept override
 The memory kernel and propagator are block diagonal. This function returns a reference to a vector containing the dimensions of these blocks.
 
std::unique_ptr< Modelcopy () const override
 Returns a deep copy of the model.
 
bool isEqual (const Model &other) const override
 Returns true if other is the same as *this, otherwise false.
 
- Public Member Functions inherited from RealTimeTransport::Model
bool operator== (const Model &other) const
 Equality comparison operator.
 
bool operator!= (const Model &other) const
 Inequality comparison operator.
 
virtual OperatorType P () const
 Returns the parity operator.
 

Additional Inherited Members

- Public Types inherited from RealTimeTransport::Model
using OperatorType = SciCore::Matrix
 Type of ordinary operators.
 
using SupervectorType = SciCore::Vector
 Type of vectorized operators.
 
using SuperRowVectorType = SciCore::RowVector
 Type of adjoint of vectorized operators.
 
using SuperoperatorType = SciCore::Matrix
 Type of superoperators.
 

Constructor & Destructor Documentation

◆ DoubleDot()

RealTimeTransport::DoubleDot::DoubleDot ( SciCore::Real epsilon1,
SciCore::Real epsilon2,
SciCore::Real U,
SciCore::Complex Omega,
const SciCore::RealVector & T,
const SciCore::RealVector & mu,
const SciCore::RealVector & Gamma1,
const SciCore::RealVector & Gamma2 )
Parameters
epsilon1Energy of dot 1
epsilon2Energy of dot 2
UCoulomb interaction between the dots
OmegaHybridization between the dots
TTemperatures of the reservoirs
muChemical potentials of the reservoirs
Gamma1Coupling \( \Gamma_{r1} \) between dot 1 and the reservoirs
Gamma2Coupling \( \Gamma_{r2} \) between dot 2 and the reservoirs