Porphyrin based dyes

We present a computational screening study of more than 12,000 porphyrin- based dyes obtained by modifying the porphyrin backbone (metal center and axial ligands), substituting hydrogen by fluorine, and adding different side and anchoring groups.

The first 5145 porphyrins are described in:

Kristian B. Ørnsø, Juan M. García-Lastra and Kristian S. Thygesen

Computational screening of functionalized zinc porphyrins for dye sensitized solar cells

Phys. Chem. Chem. Phys., 2013, 15, 19478-19486

Kristian B. Ørnsø, Christian S. Pedersen, Juan M. García-Lastra and Kristian S. Thygesen

Optimizing porphyrins for dye sensitized solar cells using large-scale ab initio calculations

Phys. Chem. Chem. Phys., 2014, 16, 16246-16254

Examples of using the database can be found in:

Kristian B. Ørnsø, Juan M. García-Lastra, Gema De La Torre, F. J. Himpsel, Angel Rubio and Kristian S. Thygesen

Design of two-photon molecular tandem architectures for solar cells by ab initio theory

Chem. Sci., 2015, 6, 3018-3025

Kristian B. Ørnsø, Elvar Ö. Jónsson, Karsten W. Jacobsen and Kristian S. Thygesen

Importance of the Reorganization Energy Barrier in Computational Design of Porphyrin-Based Solar Cells with Cobalt-Based Redox Mediators

  1. Phys. Chem. C, 2015, 119, 12792-12800

Key-value pairs

../_images/mol.png

Example of dye with: M=ZnP, A=EthynPhA, R1=Ph, R2=Ph, R3=Ph

key

description

unit

M

Metal center

A

Anchor group

R1

First side group

R2

Second side group

R3

Third side group

KS_HOMO

Kohn-Sham HOMO eigenvalue

eV

KS_LUMO

Kohn-Sham LUMO eigenvalue

eV

KS_gap

KS gap (KS_LUMO - KS_HOMO)

eV

E_HOMO

IP

eV

E_LUMO

EA

eV

E_gap

EA - IP

eV

E_c

Cond. band - IP

eV

E_1

Triplet optical gap

eV

E_opt_LUMO

IP + troiplet

eV

LQual1

Level align. 1

eV

LQual2

Level align. 2

eV

UsedE1

UsedE1

UsedEc

UsedEc

dssc

DSSC

gpaw_setups

GPAW-potential

gpaw_version

GPAW-version

xc

XC

DBScreen

DB-screen

Example of how to use the database to create Figure S1 in the 2014 paper

# creates: homolumo.svg
import matplotlib.pyplot as plt
import ase.db


def plotter(M, A, c):
    """Function to get and plot E_HOMO and E_LUMO against E_gap for a given
    metal center and anchor group."""

    EH = []
    EL = []
    EG = []
    for row in c.select(M=M, A=A):  # select dyes with a specific M and A
        EL.append(row.E_LUMO)
        EH.append(row.E_HOMO)
        EG.append(row.E_gap)
    # Set colors based on metal center:
    cl = {'ZnP': 'red',
          'FZnP': 'gold',
          'TiOP': 'magenta',
          'FTiOP': 'purple',
          'TiO2RP': 'pink',
          'FTiO2RP': 'cadetblue',
          'H2P': 'orange',
          'FH2P': 'coral'}[M]

    # Set symbol based on anchor group:
    mk = {'EthynPhA': 's',
          '2CarboxyPropenA': 'o',
          '2CyanoPropenA': '^',
          'EthenThPCyanoAcryl': 'v',
          'DThPCyanoAcryl': '<',
          'EthynDThPA': '>',
          'EthynBTDPhA': '8',
          'EthynPhM': 'p',
          'EthynThPA': '*',
          'EthynDPhEPhA': 'h',
          'EthynThPCyanoAcryl': '+',
          'EthynPhEPhA': 'x',
          'EthynDThPCyanoAcryl': 'd',
          'EthynFuA': 'D',
          'ThPCyanoAcryl': 'H',
          'EthynTPhEPhA': '1',
          'EthenCyanoAcryl': '2',
          'EthynPhDA': '3'}[A]

    plt.plot(EG, EH, color=cl, marker=mk, linestyle='None')
    plt.plot(EG, EL, color=cl, marker=mk, linestyle='None')


c = ase.db.connect('dssc.db')

for M in ['ZnP', 'TiOP', 'H2P']:  # metal centers
    for A in ['EthynPhA', '2CarboxyPropenA', '2CyanoPropenA']:  # anchor groups
        plotter(M, A, c)
    plt.ylabel(r'Energy (eV)', fontsize=18)
    plt.xlabel(r'$E_{\mathrm{gap}}$ (eV)', fontsize=18)
    plt.savefig('homolumo.svg')
../_images/homolumo.svg