Fenna-Matthews-Olson Model#
The Fenna-Matthews-Olson (FMO) complex is a pigment-protein complex found in green sulfur bacteria. We implemented it in QC Lab as an 7 site model with Holstein-type coupling to local vibrational modes with couplings and frequencies sampled from a Debye spectral density according to Mulvihill et. al 2021.
where the matrix elements above are in units of wavenumbers. Note that the values below are in units of thermal quantum at 298.15K.
The quantum-classical and classical Hamiltonians are
where \(q^{(i)}_{j}\) is the \(j\)-th coordinate coupled to site \(i\) and \(p^{(i)}_{j}\) is the corresponding momentum.
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 HolsteinLatticeModel class:
Parameter (symbol) |
Description |
Default Value |
---|---|---|
temp \((T)\) |
Temperature |
1 |
mass \((m)\) |
Vibrational mass |
1 |
A \((A)\) |
Number of bosons |
200 |
W \((\Omega)\) |
Characteristic frequency |
106.14 \(\mathrm{cm}^{-1}\) |
l_reorg \((\lambda)\) |
Reorganization energy |
35 \(\mathrm{cm}^{-1}\) |
Example#
from qc_lab.models import FMOComplex
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 = FMOComplex()
# 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[5] = 1.0
# run the simulation
data = serial_driver(sim)