Holstein Lattice Model#
The Holstein Lattice Model is a nearest-neighbor tight-binding model combined with an idealized optical phonon that interacts via a Holstein coupling. The current implementation accommodates a single electronic particle and is described in detail in Krotz et al. 2021 .
The quantum Hamiltonian of the Holstein model is a nearest-neighbor tight-binding model
where \(\langle i,j\rangle\) denotes nearest-neighbor sites with or without periodic boundaries determined by the parameter periodic_boundary=True.
The quantum-classical Hamiltonian is the Holstein coupling with dimensionless electron-phonon coupling \(g\) and phonon frequency \(\omega\)
and the classical Hamiltonian is the harmonic oscillator
with mass \(m\).
The classical coordinates are sampled from a Boltzmann distribution.
Constants#
The following table lists all of the constants required by the HolsteinLatticeModel class:
Parameter (symbol) |
Description |
Default Value |
---|---|---|
temp \((T)\) |
Temperature |
1 |
g \((g)\) |
Dimensionless electron-phonon coupling |
0.5 |
w \((\omega)\) |
Phonon frequency |
0.5 |
N \((N)\) |
Number of sites |
10 |
J \((J)\) |
Hopping energy |
1 |
phonon_mass \((m)\) |
Phonon mass |
1 |
periodic_boundary |
Periodic boundary condition |
True` |
Example#
from qc_lab.models import HolsteinLattice
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 = HolsteinLattice()
# instantiate an algorithm
sim.algorithm = MeanField()
# define an initial diabatic wavefunction
sim.state.wf_db = np.zeros((sim.model.constants.num_quantum_states), dtype=complex)
sim.state.wf_db[0] = 1.0
# run the simulation
data = serial_driver(sim)