# Optimizing the Combination of Natural Pigments for Co-Sensitization of Panchromatic TiO2 Dye Sensitized Solar Cells

## Description

Note: The Proquest link to the M.S. Thesis with a more complete description of this work is provided under the "Related Links" header at the bottom of this page. This repository contains UV/VIS and JV measurement .csv files for DSSC’s produced with a variety of natural dye combinations of Anthocyanins (A), Betalins (B), Chlorophyll (C), Xanthonoids (M), Curcuminoids (K) and Phycobilins (P). Note: A 1:1 combination of A & B is denoted as “AB”. Data is available for 42 unique combinations, plus 6 so-called “absorbance optimized combinations” that exhibit light harvesting efficiency (LHE) profiles which are highly commensurable with the AM1.5G solar irradiance spectrum (data courtesy of NREL). This work hypothesizes that dye combinations exhibiting these highly commensurable LHE spectra will also exhibit characteristically high DSSC performance. For convenience, both of these .csv files have been plotted to make the data available in a graphical format. The repository also contains the original .py file used to perform the Radial Basis Function (RBF) interpolation for analysis of a further 2,568 dye combinations. For example, given a set of 6 constituent dyes, this script yields a surface in R7 which interpolates all measured absorbance data at a given wavelength. Assuming that absorbance data is available for n combinations of these 6 constituent dyes, this would be a function interpolating n points in R7. This process is repeated for all wavelengths for which data is available allowing each interpolation function to be sampled and concatenated to yield a spectrum for an arbitrary dye combination. The script then samples many arbitrary combinations using this method and prints to the terminal the combinations which maximize each of the 3 objective functions uses to assess AM1.5G commensurability. The input data to this script can be modified allowing for similar analysis of proprietary data. Specifically, this can be achieved by the appropriate modification of the “Empirical_Dye_Solutions_Volume_Fractions.csv” and either of the “UV/VIS_Absorbance_Anode_Adsorbed.csv” or “UV/VIS_Absorbance_Bulk_Solution.csv” files. The following videos (uploaded to YouTube) have been produced to assist readers in understanding the purpose of both the RBF interpolation and the differences of the 3 objective functions: https://www.youtube.com/watch?v=KSHNrELYn9g https://www.youtube.com/watch?v=D9Z7w32d_Ts The results obtained in this work indicate that panchromaticity alone is not sufficient to predict DSSC performance. However, a 1:1 combination of a-Mangostin and Curcuminoids was found to exhibit much higher DSSC efficiency (TiO2 anode, Pt-counter electrode, I-/I3- electrolyte) compared to any of the other analyzed combinations. This combination was successfully co-adsorbed with CDCA and exhibited strong UV stability over time.

## Files

## Steps to reproduce

To reproduce, download the following files: Optimization_Script.py Empirical_Dye_Solutions_Volume_Fractions.csv NREL_Solar_Irradiance.csv UVVIS_Absorbance_Bulk_Solution.csv UVVIS_Absorbance_Anode_Adsorbed.csv To run the Optimization_Script, you will need numpy (v. 1.21.6 or higher), matplotlib (v. 3.5.1 or higher), scipy (v. 1.7.3 or higher) and tqdm (v. 4.64.0 or higher). The results in this work will be duplicated using the provided data. To analyze proprietary data, begin by making a list of all dye combinations being analyzed (this includes the so-called “individual combinations” (aka. Jut the individual dye)). Modify the “Empirical_Dye_Solutions_Volume_Fractions.csv” appropriately by inputting the volume fractions of each constituent dye for each combination. To analyze more than 6 dyes, the .py file itself will have to be modified. The file contains internal instructions on how to do this. To analyze less than 6 dyes, set the volume fractions of any unused dyes to be 0. The number of combinations of these constituent dyes is not limited. Then, for each combination defined in the volume fractions file, input the corresponding UV/VIS *absorbance* data in the UV/VIS absorbance files. This work analyzed not only the absorbance profiles of bulk dye solutions in MeOH, but also the absorbance profiles of dyes adsorbed on transparent TiO2 films like in a DSSC configuration. Either one of these experimental setups may be replicated, but bulk solution data is the most straightforward. This data should be collected between 300 and 800 nm with a resolution of 1 nm. This can be changed within the .py file, if needed. More detailed instructions about how to implement proprietary data can be found at the Github repository under "Related Links" which takes advantage of Markdown to show how the volume fractions and UV/VIS data files should be constructed. Once all appropriate data changes have been made, the script should run and generate the absorbance optimized combinations. If a irradiance spectrum besides AM1.5G is desired, an alternate file can be uploaded in the script. For simplicity, this code brute forces combinations rather than attempting to use any sophisticated gradient descent methods to minimize a loss function. It takes about 2 minutes to analyze 2,568 combinations using an i7-4790 @ 3.60 GHz.