|
RealTimeTransport 1.0.0
Real-time simulation of quantum transport processes
|
#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. | |
| DoubleDot & | operator= (DoubleDot &&other) noexcept=default |
| Default move assignment operator. | |
| DoubleDot & | operator= (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< Model > | copy () 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. | |
| 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 ) |
| epsilon1 | Energy of dot 1 |
| epsilon2 | Energy of dot 2 |
| U | Coulomb interaction between the dots |
| Omega | Hybridization between the dots |
| T | Temperatures of the reservoirs |
| mu | Chemical potentials of the reservoirs |
| Gamma1 | Coupling \( \Gamma_{r1} \) between dot 1 and the reservoirs |
| Gamma2 | Coupling \( \Gamma_{r2} \) between dot 2 and the reservoirs |