Once the information on excited states and molecular structures is received, PyFREC identifies potential resonances between electronic excited states of fragments, calculates spectral overlaps, and computes electronic couplings. The coupling calculation module calls the module that computes electrostatic screening factors. Rates of excitation energy transfer are further computed using the Förster theory. The variation method is used to model coupled electronic excited states. A separate module performs quantum dynamics simulations that are based on the master equation formalism and account for molecular vibrations. There also are shared auxiliary library modules that store constants, conversion factors, standard data structures (e.g., atoms, Cartesian coordinates, etc.) and routines for data exchange among other modules. While many common standard Python libraries are used by PyFREC (e.g. os, sys, re , etc.),28 the computationally intensive routines (matrix algebra, integration of differential equations, etc.) rely onNumPy and SciPy libraries.29, 30