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

IMPS Simulation Tutorial

1. Introduction

IMPS (Intensity-Modulated Photocurrent Spectroscopy) probes how the photocurrent of a device responds to a small sinusoidal modulation of the incident light. In practice, the illumination is written as \( I_{\mathrm{light}}(t) = I_{0} + \Delta I \, e^{i\omega t} \), and the resulting photocurrent response can be expressed as \( J(t) = J_{0} + \Delta J \, e^{i(\omega t + \phi)} \).

The ratio \[ H(\omega) = \frac{\Delta J(\omega)}{\Delta I(\omega)} \] defines the complex IMPS transfer function, whose magnitude and phase provide insight into the underlying physics. At high frequencies, limited carrier collection suppresses the response, while at low frequencies the photocurrent follows the light modulation more closely. Features such as arcs and peaks in Nyquist or Bode plots can be traced back to charge transport times, recombination lifetimes, and interfacial kinetics.

With OghmaNano, you can simulate IMPS directly on a device model and generate Nyquist and Bode plots that mirror experimental data. This allows you to disentangle the roles of transport, recombination, and contact resistances, and to test hypotheses before or alongside laboratory measurements.

2. Getting started

To begin, open the New simulation window (see ??) and double-click the Organic solar cells category. This folder contains a range of OPV demo devices suitable for running IMPS simulations. From the list that appears (see ??), select a PM6:Y6 demo device (for example, PM6:Y6_E6_0hrs). This provides a preconfigured project with sensible defaults, so you can run IMPS directly without building a device from scratch.

OghmaNano 'New simulation' window with categories; Organic solar cells highlighted.
New simulation window — select the Organic solar cells category.
Template list showing PM6:Y6 demo devices; top entry provides a preconfigured IMPS setup.
Example templates for OPV devices. Select a PM6:Y6 demo device for IMPS.

3. Examine the IMPS setup

From the Editors ribbon in the main window, open the FX Domain Editor, then click the IMPS tab (Intensity-Modulated Photocurrent Spectroscopy).

Check the Frequency mesh to see which frequency points will be simulated (??). Here the mesh is specified as individual points (useful for matching experimental frequencies), but you can also use a continuous range with a start/stop frequency and a maximum number of points. To increase spacing between points, adjust the Multiply factor from 1.0 to a value > 1 (e.g., 1.05) for geometric spacing; values < 1 compress spacing.

FX domain editor on the IMPS tab showing the Frequency mesh table with individually listed frequency points.
Frequency mesh tab: define frequency points or ranges for IMPS simulations.
Configure tab for IMPS: Vexternal, simulation type, and key choices 'Excite with: Light' and 'Measure: Current', plus light modulation depth.
Configure tab: set Excite with = Light, Measure = Current, choose modulation depth, and other run options.

Next, open the Configure tab (??). For IMPS, set Excite with to Light and Measure to Current. Keep the external bias Vexternal at 0 V for short-circuit IMPS, and choose a small Light modulation depth (e.g., 0.1 in relative units) to remain in the linear response regime. These parameters define a standard IMPS experiment in OghmaNano.

4. Setting the simulation mode

All frequency-domain simulations that are defined in the FX Domain Editor (e.g. IMPS, IMVS, and IS) will appear as buttons on the Simulation type ribbon. Before you run the IMPS simulation, make sure the IMPS mode button is selected (depressed); otherwise a different mode may run (see ??).

Simulation type ribbon in OghmaNano showing IMPS, IMVS, IS, and related buttons; IMPS is highlighted to indicate it should be selected.
Simulation type ribbon: ensure IMPS is selected before running the simulation.

4. Running the simulation and viewing outputs

From the main simulation window, open the File ribbon and click Run simulation (??). You can also press F9 as a shortcut while the main window is active.

When the IMPS run finishes, go to the Output tab to find the generated result files (??). Typical files include fx_real.csv, fx_imag.csv, fx_phi.csv, and real_imag.csv for plotting Bode and Nyquist responses.

Main OghmaNano window with the device view; the Run simulation button in the ribbon is highlighted.
Main window: click Run simulation to start the IMPS calculation.
Output tab showing IMPS result files such as fx_real.csv, fx_imag.csv, fx_phi.csv, real_imag.csv, plus auxiliary files.
Output tab: IMPS results are written here (e.g., fx_real.csv, fx_imag.csv, fx_phi.csv, real_imag.csv) for Bode and Nyquist plotting.

5. Reading Bode & Nyquist plots

Bode: real part of the IMPS transfer function versus frequency.
Bode (real): real photocurrent response vs. frequency (fx_real.csv).
Bode: imaginary part of the IMPS transfer function versus frequency.
Bode (imag): imaginary photocurrent response vs. frequency (fx_imag.csv).
Bode: phase of the IMPS response versus frequency.
Bode (phase): phase of photocurrent response (fx_phi.csv).
Nyquist plot of IMPS: imaginary versus real photocurrent response with frequency markers.
Nyquist: −Im vs. Re of photocurrent (frequency markers included, real_imag.csv).

Once the IMPS simulation has finished, you can explore the results by double-clicking the output files in the Output tab. Before you begin, remember that you can press L while viewing a plot to toggle a logarithmic y-axis, and Shift+L to toggle a logarithmic x-axis. These shortcuts make it easier to highlight features across many orders of magnitude, and they are particularly useful for IMPS data where both fast and slow processes are present.

Taken together, the IMPS plots show that this device responds efficiently to slow light modulation, with carriers being well collected at low frequencies. The clear features around 1–2 MHz mark the dominant recombination/transport process, with a characteristic time constant of order \(\tau \sim 0.1\ \mu\text{s}\). At higher frequencies the photocurrent rolls off steeply, as the device cannot respond any faster. Overall, the spectrum reveals a single, well-defined dynamic bottleneck: the device behaves like a simple RC system where transport and recombination set an effective speed limit for converting modulated light into photocurrent.

Below you’ll find an overview of the key IMPS output files and what each one contains.

File Contents
fx_abs.csv Frequency dependence of the absolute photocurrent response.
fx_C.csv Calculated capacitance spectrum across the modulation frequencies.
fx_imag.csv Out-of-phase (imaginary) part of the photocurrent as a function of frequency.
fx_phi.csv Phase angle between the light modulation and the resulting photocurrent.
fx_R.csv Effective resistance extracted at each modulation frequency.
fx_real.csv In-phase (real) component of the photocurrent vs. frequency.
real_imag.csv Nyquist representation showing the relationship between real and imaginary photocurrent components.

📝 Check your understanding (IMPS)

💡 Tasks: Try adjusting different device parameters and see how the IMPS response changes:

✅ Expected results

6. Summary & next steps

In this tutorial you learned how to set up and run an IMPS (Intensity-Modulated Photocurrent Spectroscopy) simulation in OghmaNano, and how to interpret the resulting Bode and Nyquist plots. You saw how low-frequency behaviour reflects efficient carrier collection, how mid-frequency features highlight recombination or transport bottlenecks, and how high-frequency roll-off signals the device’s dynamic limits. The same workflow can be applied not only to organic solar cells but also to perovskites, tandems, and other optoelectronic devices where photocurrent dynamics are important. For more advanced analysis, export the CSV data to extract carrier lifetimes, fit kinetic models, or benchmark against experimental measurements.

👉 Next step: Continue to Part C: Intensity Modulated Photovoltage Spectroscopy (IMVS) to explore how devices store and release charge, and how recombination dynamics can be extracted from voltage responses under modulated light.