Spin-Boson Model#
We employ the same Hamiltonian and naming conventions as in Tempelaar & Reichman 2019.
The quantum-classical Hamiltonian of the spin-boson model is:
where \(\sigma_{z}\) is the Pauli matrix, \(E\) is the diagonal energy, \(V\) is the off-diagonal coupling, and \(A\) is the number of bosons.
The couplings and frequencies are sampled from a Debye spectral density:
where \(\Omega\) is the characteristic frequency and \(\lambda\) is the reorganization energy.
The classical coordinates are sampled from a Boltzmann distribution.
Constants#
The following table lists all of the constants required by the SpinBosonModel class:
Parameter (symbol) |
Description |
Default Value |
---|---|---|
kBT \((kBT)\) |
Thermal quantum |
1 |
V \((V)\) |
Off-diagonal coupling |
0.5 |
E \((E)\) |
Diagonal energy |
0.5 |
A \((A)\) |
Number of bosons |
100 |
W \((\Omega)\) |
Characteristic frequency |
0.1 |
l_reorg \((\lambda)\) |
Reorganization energy |
0.005 |
boson_mass \((m)\) |
Mass of the bosons |
1 |
Example#
from qc_lab.models import SpinBoson
from qc_lab import Simulation
from qc_lab.algorithms import MeanField
from qc_lab.dynamics import serial_driver
import numpy as np
# instantiate a simulation
sim = Simulation()
# instantiate a model
sim.model = SpinBoson()
# instantiate an algorithm
sim.algorithm = MeanField()
# define an initial diabatic wavefunction
sim.state.wf_db = np.array([1, 0], dtype=complex)
# run the simulation
data = serial_driver(sim)