How to Use Aggregate Class#
The Aggregate class combines multiple Molecule objects into a coupled
system. The example below shows how to build a homodimer and diagonalize its
Hamiltonian.
Creating an aggregate#
import quantarhei as qr
en = [0.0, 1.0]
m1 = qr.Molecule(name="Mol1", elenergies=en)
m2 = qr.Molecule(name="Mol2", elenergies=en)
ag = qr.Aggregate(name="Homodimer")
ag.add_Molecule(m1)
ag.add_Molecule(m2)
# set the resonance coupling between molecule 0 and molecule 1
ag.set_resonance_coupling(0, 1, 0.1)
# build the aggregate in the single-excitation manifold
ag.build(mult=1)
H = ag.get_Hamiltonian()
print(H)
Using physical energy units#
Energies can be supplied in wavenumbers by wrapping assignments in an
energy_units context manager:
import quantarhei as qr
with qr.energy_units("1/cm"):
m1 = qr.Molecule(name="Mol1", elenergies=[0.0, 10100.0])
m2 = qr.Molecule(name="Mol2", elenergies=[0.0, 10100.0])
ag = qr.Aggregate(name="Homodimer")
ag.add_Molecule(m1)
ag.add_Molecule(m2)
ag.set_resonance_coupling(0, 1, 0.1)
ag.build(mult=1)
H = ag.get_Hamiltonian()
with qr.energy_units("1/cm"):
print(H)