Main text figure data and scripts for "Formally exact fluorescence spectroscopy simulations for mesoscale molecular aggregates with N⁰ scaling".
Creators: name: Gera, Tarun
name: Alexia Hartzell
name: Raccah, Doran
name: Eisfeld, Alexander
name: CHEN, LIPENG
name: Lynd, Jacob
Publisher: name: Zenodo
Year: 2025
Subjects: Open Quantum System
Spectroscopy
Fluorescence
Reduced-Scaling Calculations

description: This document contains the details needed to reproduce the figures reported in the paper

titled “Formally exact fluorescence spectroscopy simulations for mesoscale molecular

aggregates with N⁰ scaling”, by Tarun Gera, Alexia Hartzell, Lipeng Chen, Alex Eisfeld,

and Doran I. G. B. Raccah.

 

Each directory is dedicated to a particular figure published in the paper and contains

analyzed data as well as python scripts to generate, analyze (analysis.py), and plot

(plotting.py) the data used in each figure.

 

Figure_3: 

 

- Fig_3.png: Figure 3 from main text.

- plotting.py: Script used to generate Figure 3.

- TOTAL:

- Fluor_4site_TOTAL.py: Script used to generate trajectories for the total

                        fluorescence time correlation function for 4-site chain.

- analysis.py: Script used to perform ensemble averaging, zero padding, and fast

               fourier transform to obtain the ensemble total fluorescence

               frequency correlation function and frequency axis for 4-site

               chain.

- Cw_TOTAL.npy: Calculated frequency domain correlation function for the total

                fluorescence of 4-site chain.

- w_axis_TOTAL.npy: Frequency axis for the total fluorescence of 4-site chain.

- K1BALL:

- Fluor_4site_K1BALL.py: Script used to generate trajectories for the decomposed

                         ket-1 bra-all (Where the first ket and all bra sites

                         are initially excited) fluorescence time correlation

                         function for 4-site chain.

- analysis.py: Script used to perform ensemble averaging, zero padding, and

               fast fourier transform to obtain the ensemble ket-1 bra-all

               fluorescence frequency correlation function and frequency axis

               for 4-site chain.

- Cw_K1BALL.npy: Calculated frequency domain correlation function for the ket-1

                 bra-all fluorescence of 4-site chain.

- w_axis_K1BALL.npy: Frequency axis for the ket-1 bra-all fluorescence of

                     4-site chain.

- K2BALL:

- Fluor_4site_K2BALL.py: Script used to generate trajectories for the decomposed

                         ket-2 bra-all fluorescence time correlation function

                         for 4-site chain.

- analysis.py: Script used to perform ensemble averaging, zero padding, and

               fast fourier transform to obtain the ensemble ket-2 bra-all

               fluorescence frequency correlation function and frequency axis

               for 4-site chain.

- Cw_K2BALL.npy: Calculated frequency domain correlation function for the ket-2

                 bra-all fluorescence of 4-site chain.

- w_axis_K2BALL.npy: Frequency axis for the ket-2 bra-all fluorescence of

                     4-site chain.

- K1B1:

- Fluor_4site_K1B1.py: Script used to generate trajectories for the decomposed

                       ket-1 bra-1 fluorescence time correlation function for

                       4-site chain.

- analysis.py: Script used to perform ensemble averaging, zero padding, and

               fast fourier transform to obtain the ensemble ket-1 bra-1

               fluorescence frequency correlation function and frequency axis

               for 4-site chain.

- Cw_K1B1.npy: Calculated frequency domain correlation function for the ket-1

               bra-1 fluorescence of 4-site chain.

- w_axis_K1B1.npy: Frequency axis for the ket-1 bra-1 fluorescence of 4-site

                   chain.

- K1B2:

- Fluor_4site_K1B2.py: Script used to generate trajectories for the decomposed

                       ket-1 bra-2 fluorescence time correlation function for

                       4-site chain.

- analysis.py: Script used to perform ensemble averaging, zero padding, and

               fast fourier transform to obtain the ensemble ket-1 bra-2

               fluorescence frequency correlation function and frequency axis

               for 4-site chain.

- Cw_K1B2.npy: Calculated frequency domain correlation function for the ket-1

               bra-2 fluorescence of 4-site chain.

- w_axis_K1B2.npy: Frequency axis for the ket-1 bra-2 fluorescence of 4-site

                   chain.

- K1B3:

- Fluor_4site_K1B3.py: Script used to generate trajectories for the decomposed

                       ket-1 bra-3 fluorescence time correlation function for

                       4-site chain.

- analysis.py: Script used to perform ensemble averaging, zero padding, and

               fast fourier transform to obtain the ensemble ket-1 bra-3

               fluorescence frequency correlation function and frequency axis

               for 4-site chain.

- Cw_K1B3.npy: Calculated frequency domain correlation function for the ket-1

               bra-3 fluorescence of 4-site chain.

- w_axis_K1B3.npy: Frequency axis for the ket-1 bra-3 fluorescence of 4-site

                   chain.

- K1B4:

- Fluor_4site_K1B4.py: Script used to generate trajectories for the decomposed

                       ket-1 bra-4 fluorescence time correlation function for

                       4-site chain.

- analysis.py: Script used to perform ensemble averaging, zero padding, and

               fast fourier transform to obtain the ensemble ket-1 bra-4

               fluorescence frequency correlation function and frequency axis

               for 4-site chain.

- Cw_K1B4.npy: Calculated frequency domain correlation function for the ket-1

               bra-4 fluorescence of 4-site chain.

- w_axis_K1B4.npy: Frequency axis for the ket-1 bra-4 fluorescence of 4-site

                   chain.

- K2B1:

- Fluor_4site_K2B1.py: Script used to generate trajectories for the decomposed

                       ket-2 bra-1 fluorescence time correlation function for

                       4-site chain.

- analysis.py: Script used to perform ensemble averaging, zero padding, and

               fast fourier transform to obtain the ensemble ket-2 bra-1

               fluorescence frequency correlation function and frequency axis

               for 4-site chain.

- Cw_K2B1.npy: Calculated frequency domain correlation function for the ket-2

               bra-1 fluorescence of 4-site chain.

- w_axis_K2B1.npy: Frequency axis for the ket-2 bra-1 fluorescence of 4-site

                   chain.

- K2B2:

- Fluor_4site_K2B2.py: Script used to generate trajectories for the decomposed

                       ket-2 bra-2 fluorescence time correlation function for

                       4-site chain.

- analysis.py: Script used to perform ensemble averaging, zero padding, and

               fast fourier transform to obtain the ensemble ket-2 bra-2

               fluorescence frequency correlation function and frequency axis

               for 4-site chain.

- Cw_K2B2.npy: Calculated frequency domain correlation function for the ket-2

               bra-2 fluorescence of 4-site chain.

- w_axis_K2B2.npy: Frequency axis for the ket-2 bra-2 fluorescence of 4-site

                   chain.

- K2B3:

- Fluor_4site_K2B3.py: Script used to generate trajectories for the decomposed

                       ket-2 bra-3 fluorescence time correlation function for

                       4-site chain.

- analysis.py: Script used to perform ensemble averaging, zero padding, and

               fast fourier transform to obtain the ensemble ket-2 bra-3

               fluorescence frequency correlation function and frequency axis

               for 4-site chain.

- Cw_K2B3.npy: Calculated frequency domain correlation function for the ket-2

               bra-3 fluorescence of 4-site chain.

- w_axis_K2B3.npy: Frequency axis for the ket-2 bra-3 fluorescence of 4-site

                   chain.

- K2B4:

- Fluor_4site_K2B4.py: Script used to generate trajectories for the decomposed

                       ket-2 bra-4 fluorescence time correlation function for

                       4-site chain.

- analysis.py: Script used to perform ensemble averaging, zero padding, and

               fast fourier transform to obtain the ensemble ket-2 bra-4

               fluorescence frequency correlation function and frequency axis

               for 4-site chain.

- Cw_K2B4.npy: Calculated frequency domain correlation function for the ket-2

               bra-4 fluorescence of 4-site chain.

- w_axis_K2B4.npy: Frequency axis for the ket-2 bra-4 fluorescence of 4-site

                   chain.

 

Figure_4:

 

- Fig_4.png: Figure 4 from main text.

- plotting.py: Script used to generate Figure 4.

- Flu_input_script_V_0_coh.py: Script used to generate trajectories for the

                               coherence contributions to the fluorescence time

                               correlation function for dimer with nearest-neighbor

                               coupling V=0.

- Flu_input_script_V_0_pop.py: Script used to generate trajectories for the

                               population contributions to the fluorescence time

                               correlation function for dimer with V=0.

- Flu_input_script_V_m100_coh.py: Script used to generate trajectories for the

                                  coherence contributions to the fluorescence time

                                  correlation function for dimer with V=-100.

- Flu_input_script_V_m100_pop.py: Script used to generate trajectories for the

                                  population contributions to the fluorescence time

                                  correlation function for dimer with V=-100.

- analysis.py: Script used to calculate amplitudes and phases of the time

               correlation functions for dimer data.

- data_coh_V0_phase.npz: Calculated phases for the coherence contributions of the

                         V=0 dimer.

- data_coh_V0_amp.npz: Calculated amplitudes for the coherence contributions of the

                       V=0 dimer.

- data_pop_V0_phase.npz: Calculated phases for the population contributions of the

                         V=0 dimer.

- data_pop_V0_amp.npz: Calculated amplitudes for the population contributions of the

                       V=0 dimer.

- data_coh_Vm100_phase.npz: Calculated phases for the coherence contributions of the

                            V=-100 dimer.

- data_coh_Vm100_amp.npz: Calculated amplitudes for the coherence contributions of

                          the V=-100 dimer.

- data_pop_Vm100_phase.npz: Calculated phases for the population contributions of

                            the V=-100 dimer.

- data_pop_Vm100_amp.npz: Calculated amplitudes for the population contributions of

                          the V=-100 dimer.

 

Figure_5:

 

- Fig_5.png: Figure 5 from the main text.

- plotting.py: Script used to generate Figure 5.

- Flu_input_script_pop.py: Script used to generate trajectories for the population

                           contributions to the fluorescence time correlation

                           function for 100-site chain.

- Flu_input_script_pop_pm1.py: Script used to generate trajectories for the

                               population ± 1 contributions to the fluorescence

                               time correlation function for 100-site chain.

- Flu_input_script_pop_pm4.py: Script used to generate trajectories for the

                               population ± 4 contributions to the fluorescence time

                               correlation function for 100-site chain.

- analysis.py: Script used to perform ensemble averaging, zero padding, and fast

               fourier transform to obtain the ensemble fluorescence frequency

               correlation functions and frequency axes for population,

               population ± 1, and population ± 4 contributions for 100-site chain.

- Norm_Cw_init_ket_bra_same.npy: Calculated normalized frequency domain correlation

                                 function and frequency axis for the population

                                 contributions of 100-site chain.

- Norm_Cw_init_ket_bra_same_pm1.npy: Calculated normalized frequency domain

                                     correlation function and frequency axis for the

                                     population ± 1 contributions of 100-site chain.

- Norm_Cw_init_ket_bra_same_pm4.npy: Calculated normalized frequency domain

                                     correlation function and frequency axis for the

                                     population ± 4 contributions of 100-site chain.

 

Figure_6:

 

- Fig_6.png: Figure 6 from the main text.

- plotting.py: Script used to generate Figure 6.

- Flu_input_script.py: Script used to run the fluorescence simulation and record

                       number of auxiliary wave functions, system states, and CPU

                       time for each N-pigment system.

- analysis.py: Script used to calculate mean and standard deviation of the number of

               auxiliary wave functions, system states, and CPU time for each

               N-pigment system in a DadHOPS calculation, as well as generating the

               number of auxiliary and system states for a HOPS calculation.

- nhier_hops.npy: Calculated number of auxiliary wave functions for each N-pigment

                  system in a HOPS calculation.

- nhier_mean_std.npy: Calculated mean and standard deviation of the number of

                      auxiliary wave functions for each N-pigment system in a

                      DadHOPS calculation.

- nstate_hops.npy: Calculated number of system states for each N-pigment system in a

                   HOPS calculation.

- nstate_mean_std.npy: Calculated mean and standard deviation of the number of

                       system states for each N-pigment system in a DadHOPS

                       calculation.

- time_mean_std.npy: Calculated mean and standard deviation of the CPU time for each

                     N-pigment system in a DadHOPS calculation.

 

Figure_7:

 

- Fig_7.png: Figure 7 from the main text.

- plotting.py: Script used to generate Figure 7.

- Input_script_flu_dydHOPS.py: Script used to run the fluorescence simulation using 

                   dyadic HOPS and record the CPU time.

- Input_script_flu_DadHOPS.py: Script used to run the fluorescence simulation using 

                   dyadic adaptive HOPS (DadHOPS) and record the CPU

                   time.

- Input_script_flu_DadHOPS_EOD_MC.py: Script used to run the fluorescence simulation

                                      using dyadic adaptive HOPS (DadHOPS) in

                                      combination with Monte-Carlo sampling of

                                      initial excitation and record the CPU time.

- analysis.py: Script used to perform ensemble sum of the wall time.  

- list_time_dydHOPS.npy: Calculated total time for system with different chain

                         lengths using dyadic HOPS method.

- list_time_DadHOPS.npy: Calculated total time for system with different chain

                         lengths using DadHOPS method.

- list_time_MC_DadHOPS.npy: Calculated total time for system with different chain

                            lengths using DadHOPS method with Monte-Carlo sampling

                            of initial excitation.

 

 

Figure_8:

 

- Fig_8.png: Figure 8 from the main text.

- plotting.py: Script used to generate Figure 8.

- Abs_input_script.py: Script used to run the absorption simulation and record the

                       fluorescence time correlation function and the wave function

                       for each N-pigment system.

- Flu_input_script.py: Script used to run the fluorescence simulation and record the

                       fluorescence time correlation function and the wave function

                       for each N-pigment system.

- analysis.py: Script used to perform ensemble averaging, zero padding, and fast

               fourier transform to obtain the ensemble fluorescence frequency

               correlation function and frequency axis, generate a Gaussian peak fit

               for the fluorescence spectra, calculate Stokes shift,

               Spano's coherence measure (see main text eq. 63), and mean IPR.

- data_abs_peak_00_position.npy: Calculated peak position for the 0-0 peak of the

                                 absorption spectrum for each N-pigment system.

- data_flu_peak_00_position.npy: Calculated peak position for the 0-0 peak of the

                                 fluorescence spectrum for each N-pigment system.

- data_mean_IPR.npy: Calculated mean IPR for each N-pigment system.

- data_N_coh.npy: Calculated Spano's coherence measure for each N-pigment system.

- data_stoke_shift.npy: Calculated Stokes shift for each N-pigment system.

- Gauss_Fit_N_1_I_00.npy: Gaussian peak fit and frequency axis for the 0-0 peak of

                          the fluorescence spectrum of 1-pigment system.

- Gauss_Fit_N_1_I_01.npy: Gaussian peak fit and frequency axis for the 0-1 peak of

                          the fluorescence spectrum of 1-pigment system.

- Gauss_Fit_N_2_I_00.npy: Gaussian peak fit and frequency axis for the 0-0 peak of

                          the fluorescence spectrum of 2-pigment system.

- Gauss_Fit_N_2_I_01.npy: Gaussian peak fit and frequency axis for the 0-1 peak of

                          the fluorescence spectrum of 2-pigment system.

- Gauss_Fit_N_10_I_00.npy: Gaussian peak fit and frequency axis for the 0-0 peak of

                           the fluorescence spectrum of 10-pigment system.

- Gauss_Fit_N_10_I_01.npy: Gaussian peak fit and frequency axis for the 0-1 peak of

                           the fluorescence spectrum of 10-pigment system.

- Gauss_Fit_N_100_I_00.npy: Gaussian peak fit and frequency axis for the 0-0 peak of

                            the fluorescence spectrum of 100-pigment system.

- Gauss_Fit_N_100_I_01.npy: Gaussian peak fit and frequency axis for the 0-1 peak of

                            the fluorescence spectrum of 100-pigment system.

- Norm_Cw_Abs_N_1.npy: Calculated normalized frequency domain correlation function

                       and frequency axis for the absorption of 1-pigment system.

- Norm_Cw_Abs_N_2.npy: Calculated normalized frequency domain correlation function

                       and frequency axis for the absorption of 2-pigment system.

- Norm_Cw_Abs_N_10.npy: Calculated normalized frequency domain correlation function

                        and frequency axis for the absorption of 10-pigment system.

- Norm_Cw_Abs_N_100.npy: Calculated normalized frequency domain correlation function

                         and frequency axis for the absorption of 100-pigment

                         system.

- Norm_Cw_Flu_N_1.npy: Calculated normalized frequency domain correlation function

                       and frequency axis for the fluorescence of 1-pigment system.

- Norm_Cw_Flu_N_2.npy: Calculated normalized frequency domain correlation function

                       and frequency axis for the fluorescence of 2-pigment system.

- Norm_Cw_Flu_N_10.npy: Calculated normalized frequency domain correlation function

                        and frequency axis for the fluorescence of 10-pigment

                        system.

- Norm_Cw_Flu_N_100.npy: Calculated normalized frequency domain correlation function

                         and frequency axis for the fluorescence of 100-pigment

                         system.

 

Figure_AppC:

 

- Fig_AppC.png: Figure 9 from Appendix C in the main text.

- plotting.py: Script used to generate Figure 9.

- Fluor_4site_defect_t2_200.py: Script used to generate trajectories for the

                                fluorescence time correlation function for a 4-site

                                chain with waiting time t_2=200.

- Fluor_4site_defect_t2_600.py: Script used to generate trajectories for the

                                fluorescence time correlation function for a 4-site

                                chain with waiting time t_2=600.

- Fluor_4site_defect_t2_1000.py: Script used to generate trajectories for the

                                 fluorescence time correlation function for a 4-site

                                 chain with waiting time t_2=1000.

- Fluor_4site_defect_t2_2000.py: Script used to generate trajectories for the

                                 fluorescence time correlation function for a 4-site

                                 chain with waiting time t_2=2000.

- analysis.py: Script used to perform ensemble averaging, zero padding, and fast

               fourier transform to obtain the ensemble absolute fluorescence

               frequency correlation functions and frequency axes for a 4-site chain

               with varying waiting time.

- Cw_t2_200.npy: Calculated spectrum and frequency axis for the system with t_2=200.

- Cw_t2_600.npy: Calculated spectrum and frequency axis for the system with t_2=600.

- Cw_t2_1000.npy: Calculated spectrum and frequency axis for the system with

                  t_2=1000.

- Cw_t2_2000.npy: Calculated spectrum and frequency axis for the system with

                  t_2=2000.

 

Figure_AppD:

 

- Fig_AppD.png: Figure 10 from Appendix D in the main text.

- plotting.py: Script used to generate Figure 10.

- Flu_input_script_pop.py: Script used to generate trajectories for the population

                           contributions to the fluorescence time correlation

                           function for 100-site chain.

- Flu_input_script_pop_pm1.py: Script used to generate trajectories for the

                               population ± 1 contributions to the fluorescence time

                               correlation function for 100-site chain.

- Flu_input_script_pop_pm4.py: Script used to generate trajectories for the

                               population ± 4 contributions to the fluorescence time

                               correlation function for 100-site chain.

- analysis.py: Script used to perform ensemble averaging, zero padding, and fast

               fourier transform to obtain the ensemble absolute fluorescence

               frequency correlation functions and frequency axes for population,

               population ± 1, and population ± 4 contributions for 100-site chain,

               as well as the difference spectra between population/population ± 1

               and population ± 1/population ± 4.

- Abs_Cw_diff_pm4_pm1.npy: Calculated difference spectrum and frequency axis for the

                           absolute frequency domain correlation functions for the

                           population ± 4 and population ± 1 contributions of

                           100-site chain.

- Abs_Cw_diff_same_pm1.npy: Calculated difference spectrum and frequency axis for

                            the absolute frequency domain correlation functions for

                            the population and population ± 1 contributions of

                            100-site chain.

- Abs_Cw_init_ket_bra_same.npy: Calculated absolute frequency domain correlation

                                function and frequency axis for the population

                                contributions of 100-site chain.

- Abs_Cw_init_ket_bra_same_pm1.npy: Calculated absolute frequency domain correlation

                                    function and frequency axis for the

                                    population ± 1 contributions of 100-site chain.

- Abs_Cw_init_ket_bra_same_pm4.npy: Calculated absolute frequency domain correlation

                                    function and frequency axis for the

                                    population ± 4 contributions of 100-site chain.

 

Figure_AppF:

- Fig_AppF.png: Figure 11 from the main text.

- plotting.py: Script used to generate Figure 11.

- Abs_input_script.py: Script used to run the absorption simulation and record the

                       time correlation function for each N-pigment system.

- Flu_input_script.py: Script used to run the fluorescence simulation and record the

                       time correlation function for each N-pigment system.

- analysis.py: Script used to perform ensemble averaging, zero padding, and fast

               fourier transform to obtain the ensemble frequency correlation

               functions and frequency axes.

- Cw_Flu_N_2.npy: Calculated absolute fluorescence spectrum and frequency axis for

                  the dimer system.

- Cw_Flu_N_10.npy: Calculated absolute fluorescence spectrum and frequency axis for

                   the 10-site system.

- Cw_Abs_N_2.npy: Calculated absolute absorption spectrum and frequency axis for the 

          dimer system.

- Cw_Abs_N_10.npy: Calculated absolute absorption spectrum and frequency axis for

                   the 10-site system.

 

mesohops_lib: Implementation of mesohops used in the main text.