Home Examples Screenshots User manual Bluesky logo
OghmaNano Simulate organic/Perovskite Solar Cells, OFETs, and OLEDs DOWNLOAD

Exciton Simulation Tutorial

1. Introduction

In this tutorial we will investigate how to simulate exciton dynamics in organic photovoltaic (OPV) devices. When a photon is absorbed in an organic semiconductor, it generates a bound electron–hole pair known as an exciton. In OPV devices, these excitons must drift or diffuse to a donor–acceptor interface where they can dissociate into free charge carriers. This process can be modeled using an exciton dissociation equation, which describes both exciton transport and their eventual conversion into electrons and holes. In OghmaNano, these exciton dynamics are introduced on top of the standard drift–diffusion equations to capture the full photophysical picture. A more detailed discussion of when exciton modeling is required (and when it can be omitted) is provided in Excitons and geminate recombination.

2. Getting started

From the New simulation tab in the file ribbon, click to open the New simulation window (see Figure 1a). In this window you will find many categories of preconfigured examples. Double-click on the Exciton simulations folder to open the submenu of available exciton-related examples (see Figure 1b). For this tutorial we will use the Exciton device template, which provides a simple starting point for simulating exciton generation, transport, and dissociation in OPV structures.

OghmaNano new simulation window with the Exciton simulations folder highlighted.
The New simulation window in OghmaNano, with the Exciton simulations category highlighted.
OghmaNano window after double-clicking the Exciton simulations folder, showing Exciton device, Exciton domain, and related templates.
Window after opening the Exciton simulations category. Here you can select from several templates; in this tutorial we use the Exciton device example.

3. Run the simulation & inspect exciton outputs

OghmaNano electrical ribbon with the Exciton solver button highlighted.
The Electrical ribbon with the Exciton solver button highlighted.
Main OghmaNano window with the Run simulation button highlighted in the file ribbon.
The main simulation window showing the Run simulation button.

Once the device is opened, you will be able to see the stack in the main window. Before running the simulation, go to the Electrical tab and check that the Exciton solver button is depressed — it usually is by default, but it’s worth confirming (??). This ensures that exciton dynamics are enabled in the model. Once this is done, return to the File menu and press the Run simulation button to execute the model (??).

Once the simulation has finished, you can inspect the results in the Output tab (??). This lists all of the files written to disk, including exciton-related outputs. By double-clicking on jv.csv, you can plot the JV curve (??). The plot looks like a standard JV curve you would obtain from any device simulation, but in this case the Exciton solver was enabled, meaning exciton dynamics are included in the underlying physics.

OghmaNano Output tab listing simulation result files including exciton outputs.
Simulation outputs listed in the Output tab.
Current density–voltage (JV) curve obtained from exciton-enabled simulation.
JV curve from jv.csv. Although it looks like a standard JV curve, the Exciton solver is enabled.

If you double-click on the exciton_output folder within the output directory, you can access the detailed results of the exciton solver (see ??). This directory contains all solver outputs, including constants as a function of position and calculated quantities derived from the exciton dynamics. For example, double-clicking on exciton.csv produces a plot of the exciton distribution across the device thickness (see ??). Similarly, Gn.csv gives the electron generation rate as a function of position, while Gp.csv shows the hole generation rate (see ??). In the case of a simple 1D device, these two generation rate files are effectively identical.

Output directory contents showing exciton_output folder and result CSV files.
Contents of the exciton_output folder in the simulation output directory.
Plot of exciton density versus y-position in the device.
Exciton density profile inside the device as a function of position (exciton.csv).
Plot of charge carrier generation rate from excitons versus y-position.
Charge carrier generation rate due to exciton dissociation as a function of position (Gn.csv).

4. Exciton transport equation and parameters

Electrical parameter editor in OghmaNano showing exciton-related parameters such as scattering length, lifetime, and rate constants.
The Electrical parameter editor in OghmaNano. Under the Excitons section, you can configure key parameters such as scattering length, lifetime, and rate constants (\(k_{\mathrm{PL}}, k_{\mathrm{FRET}}, k_{\alpha}, k_{\mathrm{dis}}\)).
Block diagram of optical–electrical pipeline with and without exciton model.
Simulation flow. Top: Without excitons, the transfer-matrix model provides the carrier generation rate directly to the drift–diffusion solver. Bottom: With the exciton model enabled, the optics first supply an exciton generation rate; the exciton solver converts this into carrier generation for the drift–diffusion solver.

The exciton distribution within the device is governed by the exciton transport equation:

\[ \frac{\partial X}{\partial t} = \nabla \!\cdot \!\big(D\,\nabla X\big) + G_{\mathrm{optical}} - k_{\mathrm{dis}}\,X - k_{\mathrm{FRET}}\,X - k_{\mathrm{PL}}\,X - \alpha\,X^{2} \]

Here \(X(\mathbf{r},t)\) is the exciton density (m\(^{-3}\)); \(D\) is the exciton diffusion coefficient (m\(^2\)s\(^{-1}\)); \(G_{\mathrm{optical}}\) is the local exciton generation rate supplied by the optical model (proportional to absorbed photons); \(k_{\mathrm{dis}}\) is the dissociation rate to free charges; \(k_{\mathrm{FRET}}\) is the Förster resonance energy transfer rate; \(k_{\mathrm{PL}}\) is the radiative decay rate; and \(\alpha\) is the exciton–exciton annihilation coefficient (m\(^3\)s\(^{-1}\)). When this model is enabled, the electronic drift–diffusion equations use a generation term defined as \(G = k_{\mathrm{dis}}\,X\), optionally restricted to interfacial regions if configured.

All of these parameters can be viewed and modified in the Electrical parameter editor, accessible from the main menu (see ??). The exciton-specific fields are grouped under the Excitons heading. These are summarised in the table below.

Parameter Meaning Units
Scattering length Effective diffusion length of excitons before scattering. m
Lifetime Average time an exciton survives before decay or dissociation. s
kPL Radiative decay rate (photoluminescence). s⁻¹
kFRET Förster resonant energy-transfer rate. s⁻¹
kα Exciton–exciton annihilation coefficient. m³ s⁻¹
kdis Dissociation rate constant, converting excitons into free charges. s⁻¹

5. How the solver fits in with the simulation process

When the exciton solver is turned off (top of ??), the transfer-matrix optics computes the carrier generation rate and passes it straight to the drift–diffusion solver. When the exciton solver is on (bottom of ??), the optics instead provide an exciton generation rate to the exciton solver. The exciton solver then evolves that population—diffusing, transferring (FRET), dissociating, radiatively decaying, and annihilating—using the parameters set in the Electrical parameter editor, and outputs the final carrier generation rate for the drift–diffusion solver. In short, the exciton solver inserts itself between optics and electrical transport so you can model exciton physics without changing the optical setup or the drift–diffusion equations.

The sequence of operations in the exciton-enabled simulation is illustrated in ??. First, the optical solver is executed, computing the photon absorption profile slice by slice across the device. Next, the exciton solver runs, where the generated excitons are propagated, transferred, or dissociated until the solver converges, typically within a few tens of steps. Finally, the exciton generation rate is examined as a function of both device depth and wavelength, as calculated by the transfer matrix model. Together, these outputs form the pipeline that links the optical model to the exciton solver, and ultimately to the drift–diffusion equations.

Terminal output showing the optical solver running through slices at different wavelengths.
When you run the simulation, the optical solver is executed first. Here it computes absorption slice by slice across the device.
Terminal output showing the exciton solver iterating and converging.
After this, the exciton solver runs. In this case, you can see it converges within ~20 steps. Its result is then passed on to the drift–diffusion model.
Optical distribution of exciton generation rate as a function of position and wavelength.
Optical analysis of the exciton generation rate, shown here as a function of depth (y-position) and wavelength, calculated from the transfer matrix model.

💡 Tasks: Try these simple edits to explore the exciton model (Hint, change them by one to two orders of magnitude to see an effect.):

✅ Expected results