Skip to content

Exciton Model

TeraChem implements a GPU-accelerated ab initio exciton model that targets the excited-state electronic structure of large multichromophore systems by partitioning the supersystem into chromophore monomers and evaluating only the energies and couplings actually needed for the excitonic Hamiltonian. The model is invoked with run exciton together with a fragment-definition guess file.

The implementation supports locally-excited (LE), charge-transfer (CT), and triplet-triplet (TT, also called multiexcitonic) basis states; restricted, unrestricted, and restricted-open-shell SCF for the monomers; ground- and excited-state gradients; NVE and NVT (Berendsen thermostat) molecular dynamics on the excitonic surfaces; and QM/MM (point charges, internal-water, OpenMM/Amber prmtop drivers) embedding.

The theory and validation are described in Sisto, Glowacki, Martinez Acc. Chem. Res. 47, 2857 (2014)1; Li, Parrish, Liu, Kokkila Schumacher, Martinez J. Chem. Theory Comput. 13, 3493 (2017)2; Sisto et al. Phys. Chem. Chem. Phys. 19, 14924 (2017)3; and Li, Parrish, Martinez J. Chem. Phys. 153, 184116 (2020)4.

Theory

The exciton Hamiltonian is built in a basis of fragment-localized diabatic states,

\[ \hat{H} \;=\; \sum_I E_I \lvert\varphi_I\rangle\langle\varphi_I\rvert \;+\; \sum_{I\neq J} V_{IJ}\,\lvert\varphi_I\rangle\langle\varphi_J\rvert \]

where each \(\lvert\varphi_I\rangle\) is one of:

  • GS — the (anti-symmetrized) Hartree product of monomer ground states.
  • LE on monomer \(A\) — an electron-hole pair localized on \(A\), obtained from the monomer's CIS/TDDFT solution.
  • CT \(A\to B\) — a hole on monomer \(A\) and an electron on monomer \(B\). The CT energy is computed using a \(\Delta\)SCF-like construction in the frozen-density approximation, mixing the densities of the cations and anions to build the appropriate dimer Fock matrices.
  • TT \(AB\) — a singlet-coupled triplet on \(A\) and triplet on \(B\) (relevant for singlet fission).

Three approximations make the model scalable. (i) Monomer wave functions are those of the isolated fragments (the frozen-density approximation), so the matrix-element evaluation cost scales with the monomer size rather than the supersystem size. (ii) Molecular orbitals on different monomers are treated as orthogonal — exact only in the limit of vanishing intermonomer overlap, but accurate in practice for the weak-coupling regime in which excitons are well-defined. (iii) Three- and four-monomer repulsion integrals are neglected. The remaining electrostatic effect of the spectator monomers \(C\ne A,B\) on a chosen monomer or dimer is folded in through their ESP point charges (fit to the monomer ground-state density on a Connolly surface), entering the Fock matrix as a static external field. The ESP charges can be made self-consistent by iterating monomer SCFs in the field of the others (exmod_mm_iter).

The result is a small Hamiltonian whose dimension grows only with the number of chromophores rather than with the number of basis functions, while the heavy electronic-structure work (monomer SCF + CIS/TDDFT, dimer SCFs for CT) is decoupled into independent jobs that parallelize trivially.

Required input

Three things are needed to run an exciton calculation:

  1. A composite .xyz file for the whole system, with the atoms of each fragment listed contiguously and in the order in which they will appear in the fragment list.
  2. A fragment-definition guess file referenced via guess exciton <file>.
  3. run exciton plus the desired exmod_* switches.

Fragment-definition guess file

The fragment file is plain text. The first line is the number of fragments \(N_{\text{frag}}\); the next \(N_{\text{frag}}\) lines describe each fragment:

guess.txt
3
3 0 1 a
3 0 1 a
3 0 1 a

Each fragment line has four whitespace-separated tokens:

Column Meaning
1 Number of atoms in the fragment.
2 Net charge of the fragment.
3 Spin multiplicity (\(2S+1\)). Only closed-shell fragments (\(S=0\), i.e. multiplicity 1) are currently supported.
4 Spin-direction label, a (alpha / spin-up) or b (beta / spin-down). Carried over from the shared SAD / guess frag fragment format, where it sets the sign of the fragment's \(S_z\). The exciton parser does not currently read this field — per-fragment spin is not yet supported and all fragments must be closed-shell (\(S=0\)) — so in practice it is always a.

The order of the fragment lines must match the atom blocks in the composite .xyz file: the first fragment owns the first \(N_1\) atoms, the second fragment the next \(N_2\), and so on. The sum of the per-fragment atom counts must equal the total number of atoms in the .xyz.

Method choice

The monomer SCFs are run with whatever method is specified globally. All the usual TeraChem methods are supported: HF (method hf), DFT (any LDA/GGA/hybrid), and range-separated functionals such as wpbeh together with rc_w for the range-separation parameter. For methods that require LE energies (any calculation including LE states), set cis yes and the usual CIS keywords (cisnumstates, cismaxiter, etc.); for DFT-based monomers this produces TDDFT excitation energies, optionally with the Tamm-Dancoff approximation through cisnumstates and exmod_tda_ct / exmod_tda_tt.

By default the monomers are run with restricted SCF. Set exmod_uscf yes for an unrestricted treatment; this is required for the unrestricted CT/TT couplings used in the singlet-fission flavor of the model.

Selecting the basis states

The exciton-state basis is built from the following independently-toggled blocks:

  • LE states: included whenever cis yes and cisnumstates > 0 are set. The number of LE states per monomer is taken from cisnumstates.
  • CT states: enable with exmod_ct N, where \(N\) is the number of orbital pairs to include (typically 1, meaning HOMO of donor → LUMO of acceptor). For a system with \(M\) monomers and \(N\) orbital pairs, the model generates \(2 M(M-1) N^2\) CT states (the factor of 2 accounts for both donor/acceptor orderings within each pair). Use exmod_tda_ct yes to apply TDA to the CT couplings.
  • TT states: enable with exmod_tt yes for one \(T_A T_B\) singlet-coupled triplet-pair state per chromophore pair (the model currently supports only one TT state). When TT states are included, exactly one orbital pair must be used for CT (i.e. exmod_ct 1). Use exmod_tda_tt yes to apply TDA on the TT block.

Gradients

Analytic gradients are available for the ground state (exmod_gs_grad yes) and for excited states (exmod_es_grad yes); the excited-state index is the exciton-Hamiltonian eigenstate selected via exmod_state (see [Molecular dynamics] (#molecular-dynamics) below). Numerical gradients are available as a verification tool with exmod_num_grad yes.

Molecular dynamics

Born-Oppenheimer dynamics on an excitonic surface is enabled with exmod_md yes. The integrator is velocity Verlet. The relevant keywords are:

Keyword Description
exmod_dt Timestep in femtoseconds (default 0.1).
exmod_nsteps Number of MD steps (default 0; must be set to run dynamics).
exmod_state Eigenstate of the exciton Hamiltonian to propagate on (default 0 = ground state).
exmod_nvt yes for a Berendsen thermostat, no for NVE (default no).
exmod_ref_T Target temperature in Kelvin (default 300).
exmod_tau_T Berendsen relaxation time in fs (default 20).
exmod_md_rst Restart the MD from an existing exciton MD restart file (default yes).

QM/MM with the exciton model

The exciton model can be combined with all three QM/MM drivers (qmmm-style point charges, internal water, and the OpenMM/Amber prmtop-based driver). MM atoms enter every monomer Fock matrix as external point charges. Additional control of the LE / CT / TT energetics in a heterogeneous environment is provided by:

  • exmod_mm_0, exmod_mm_iter, exmod_mm_1, exmod_mm_2 — choose how the MM environment is treated in the ground-state vs. iterative-ESP vs. monomer vs. dimer evaluations.
  • exmod_use_pauli — augment the monomer-monomer interaction with the Pauli repulsion extracted from a dimer SCF, improving CT energies at short range.
  • exmod_use_lj — add a 6-12 Lennard-Jones term for the close-contact regime.
  • exmod_excl_qmmm — exclude the QM/MM interaction energy and gradient from reported totals (useful for separating intra-fragment from environmental contributions).
  • exmod_esp_chg, exmod_esp_test, exmod_esp_read, exmod_esp_file — control whether ESP charges are recomputed, tested, read in, or written to a file (final.chg by default). Set exmod_esp_read yes to skip the ESP fit and reuse pre-computed charges; this freezes the embedding and disables iterative ESP self-consistency.
  • exmod_mm_freeze yes — freeze the MM atoms during exciton-model dynamics or FMS (no MM gradient is applied).

Examples

Ground-state gradient: water trimer (HF/STO-3G)

The simplest exciton calculation: three water monomers, RHF, no excited states, ground-state gradient. The fragment file declares three closed-shell, 3-atom fragments.

exciton_rhf_grad.in
gpus all
coordinates      h2o_trimer.xyz
charge           0
spinmult         1
basis            sto-3g
method           hf

precision        double
convthre         1.0e-9
cphftol          1.0e-9
xtol             1.0e-9

run              exciton
guess            exciton        guess.txt

exmod_read_scr   no
exmod_gs_grad    yes

end
guess.txt
3
3 0 1 a
3 0 1 a
3 0 1 a

LE + CT + TT with gradients: water dimer (HF/3-21G)

A two-fragment calculation including the full excitonic basis (one LE, the CT block, and one TT state) with both ground- and excited-state gradients. The unrestricted-SCF flag (exmod_uscf yes) is required for the CT/TT treatment.

exciton_rhf_coup.in
gpus all
coordinates      h2o_dimer.xyz
charge           0
spinmult         1
basis            3-21g
method           hf

precision        double
convthre         1.0e-9
cphftol          1.0e-9
cpcistol         1.0e-9
xtol             1.0e-9

maxit            300
cismaxiter       120
cphfiter         120
cpcisiter        120

run              exciton
guess            exciton        guess.txt

exmod_read_scr   no

exmod_uscf       yes
exmod_ct         yes
exmod_tt         yes

cis              yes
cisnumstates     1

exmod_gs_grad    yes
exmod_es_grad    yes

end

Charge-transfer states with range-separated DFT

Charge-transfer state energies are very sensitive to the amount of long-range Hartree-Fock exchange. With a range-separated functional (here \(\omega\)PBEh with rc_w 0.3) the CT block is well-described. This input also illustrates how the ESP-fitting parameters interact with the exciton model — the model uses the same RESP machinery as the rest of TeraChem.

exciton_ct.in
gpus all
coordinates      furan_dcne.xyz
charge           0
spinmult         1
basis            cc-pvdz
method           wpbeh
rc_w             0.3

guess            exciton        guess.txt
exmod_ct         yes
exmod_tt         no
exmod_mm_1       yes

exmod_read_scr   no

xtol             1.0e-6
run              exciton
dynamicgrid      yes

resp             yes
esp_grid_layers  10
esp_grid_dens    2.5
esp_restraint_a  0.0

cis              yes
cisnumstates     3
cismaxiter       300
cisguessvecs     20
cissubspace      20

end

Excitonic MD: pentacene dimer

Twenty steps of velocity-Verlet MD on the lowest exciton eigenstate of a pentacene dimer at HF/STO-3G with Lennard-Jones-augmented inter-monomer interactions. Restart-reading is disabled so the dynamics starts from the geometry given.

exciton_md.in
gpus all
coordinates      ptn-dimer.xyz
basis            sto-3g
method           hf
charge           0
spinmult         1

precision        mixed
threspdp         1.0e-6
convthre         1.0e-6
cphftol          1.0e-6
xtol             1.0e-6

run              exciton
guess            exciton        guess.txt

exmod_gs_grad    yes
exmod_use_lj     yes

exmod_md         yes
exmod_dt         0.2
exmod_nsteps     20
exmod_md_rst     no

end

QM/MM exciton model: water dimer with point-charge solvent

The exciton model can be combined with internal-water QM/MM (qmmm plus pointcharges). Pauli repulsion from the dimer SCF is added through exmod_use_pauli yes, which improves the short-range CT energetics that fragment-based methods otherwise miss.

exciton_qmmm.in
coordinates      h2o_dimer.xyz
qmmm             mm.xyz
pointcharges     mm.xyz

gpus all
charge           0
spinmult         1
basis            3-21g
method           hf

precision        double
convthre         1.0e-9
cphftol          1.0e-9
cpcistol         1.0e-9
xtol             1.0e-9

dftbox           yes
dynamicgrid      no
dftgrid          2

maxit            300
cismaxiter       120
cphfiter         120
cpcisiter        120

run              exciton
guess            exciton        guess.txt

exmod_read_scr   no

cis              yes
cisnumstates     1
exmod_ct         yes
exmod_tt         yes

exmod_gs_grad    yes
exmod_es_grad    yes

exmod_approx     no
exmod_use_pauli  yes

end

Additional worked inputs are bundled with the TeraChem distribution under tests/tests/Exciton/, including OpenMM-driven setups (exciton_openmm_{qm,mm,3body}), QM/MM with link atoms (exciton_link_atom), restricted-open-shell and unrestricted SCFs (exciton_{rohf,uhf,roks,uks}_grad), and singlet-fission with TT states (exciton_tt).

Parallelism

The exciton model is one of the few calculation types in TeraChem with a distributed-memory parallelization layer. The high-level decomposition over independent monomer and dimer SCFs is dispatched through MPI when TeraChem is launched with -E / --ExMod and the appropriate MPI launcher (see Single Point Engine Mode (MPI)). Within each rank, all of the usual single-node GPU parallelism applies. The combination is what makes the model scale to the ~hundreds-of-chromophores regime (e.g. the 27-Bchla LH2 complex of Ref. 3).

Keyword reference

Keyword Description Default
run exciton Master switch; declares an exciton-model calculation. —
guess exciton <file> Read fragment definitions (and use the fragment-block initial guess). —
exmod_uscf Run monomer SCFs unrestricted. Required for the CT/TT couplings used in singlet fission. no
exmod_read_scr Read cached intermediates from the scratch directory if present. yes
exmod_scr_dir Subdirectory under scrdir holding exciton-model intermediates. exmod_rst
exmod_debug Print extra diagnostics during the exciton build. no
exmod_tdinfo Print TDDFT/CIS auxiliary information during monomer-LE steps. no
exmod_ct Number of orbital pairs to include in the CT block (0/no = disabled). Generates \(2M(M-1)N^2\) CT states. 0
exmod_tda_ct Apply the Tamm-Dancoff approximation in the CT block. no
exmod_tt Include the triplet-triplet (multiexcitonic) state. Requires exmod_ct 1. no
exmod_tda_tt Apply the Tamm-Dancoff approximation in the TT block. no
exmod_ct_tt_class Run a classification analysis on the mixed CT/TT block. no
exmod_tuning Reserved for automatic CT-orbital tuning; not yet implemented (will abort if set). no
exmod_approx Enable additional dimer-approximation strategies. no
exmod_min_dist Pair cutoff (Å). Pairs whose minimum interatomic distance exceeds this value are treated only at the electrostatic level. \(10^9\) Å (disabled)
exmod_gs_grad Compute the ground-state gradient. no
exmod_es_grad Compute the excited-state gradient (state selected by exmod_state). no
exmod_num_grad Compute numerical gradients (verification only). no
exmod_gen_cube Generate cube files of monomer and exciton orbitals/densities. no
exmod_md Run an exciton-Hamiltonian Born-Oppenheimer MD. no
exmod_md_rst Read an existing exciton MD restart file. yes
exmod_dt MD timestep in fs. 0.1
exmod_nsteps Number of MD steps. 0
exmod_state Eigenstate of the exciton Hamiltonian to propagate (0 = lowest). 0
exmod_nvt Use the Berendsen thermostat. no
exmod_ref_T Berendsen target temperature (K). 300
exmod_tau_T Berendsen relaxation time (fs). 20
exmod_esp_chg Run the per-monomer ESP fit during the exciton-model setup. no
exmod_esp_test Run ESP self-consistency tests during setup. no
exmod_esp_read Read ESP charges from a file; disables iterative ESP. no
exmod_esp_file File from which to read (or to which to write) ESP charges. final.chg
exmod_mm_0 Include MM atoms at the GS-only level. no
exmod_mm_iter Iterate the MM-induced ESP charges to self-consistency. no
exmod_mm_1 Include MM atoms in monomer Fock matrices. no
exmod_mm_2 Include MM atoms in dimer Fock matrices. no
exmod_use_pauli Add the Pauli repulsion from the dimer SCF to inter-monomer interaction. no
exmod_use_lj Augment inter-monomer interaction with a 6-12 Lennard-Jones term. no
exmod_excl_qmmm Exclude the QM/MM interaction energy/gradient from the reported totals. no
exmod_mm_freeze Freeze MM atoms during exciton-MD or FMS (no MM gradient). no
exmod_scan Scan the inter-monomer separation of the first dimer along the centre-of-mass axis. no
exmod_scan_rmin Starting separation for the scan (Å). 1.80
exmod_scan_dr Step size for the scan (Å). 0.15
exmod_scan_num Number of scan points. 40

  1. A. Sisto, D. R. Glowacki, T. J. Martínez, Acc. Chem. Res. 47, 2857-2866 (2014). ↩

  2. X. Li, R. M. Parrish, F. Liu, S. I. L. Kokkila Schumacher, T. J. Martínez, J. Chem. Theory Comput. 13, 3493-3504 (2017). ↩

  3. A. Sisto, C. Stross, M. W. van der Kamp, M. O'Connor, S. McIntosh-Smith, G. T. Johnson, E. G. Hohenstein, F. R. Manby, D. R. Glowacki, T. J. Martínez, Phys. Chem. Chem. Phys. 19, 14924-14936 (2017). ↩↩

  4. X. Li, R. M. Parrish, T. J. Martínez, J. Chem. Phys. 153, 184116 (2020). ↩