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

Impedance Spectroscopy Tutorial

1. Introduction

Impedance Spectroscopy (IS) probes a device with a small sinusoidal voltage perturbation around a chosen DC operating point and measures the complex current response. The complex impedance is \(\displaystyle Z(\omega)=\frac{\tilde V(\omega)}{\tilde I(\omega)}\), from which we analyse \(\mathrm{Re}[Z]\), \(\mathrm{Im}[Z]\), magnitude \(|Z|\), and phase \(\phi\). In OghmaNano, IS is performed with the Frequency (FX) domain tools and produces both Bode (vs. frequency) and Nyquist (−Im vs. Re) plots. This tutorial shows how to set up the frequency mesh, run IS on a standard OPV/perovskite stack, and interpret the main features. The same methods shown in this tutorial can be applied to any device with electrical contacts including OFETs, Perovskite devices, sensors and lasers.

2. Getting started

From the New simulation tab in the file ribbon, open the New simulation window (see ??). Choose Organic solar cells, then pick a ready-made PM6:Y6_E6_0hrs demo device to start (see ??). There is nothing special about this device, apart from it has preconfigured Impedance Spectroscopy simulation modes. We will use the FX domain tools to run IS around a nominal operating point.

OghmaNano 'New simulation' window showing device categories; Organic solar cells highlighted.
New simulation: pick the Organic solar cells category.
Template list for Organic solar cells showing PM6:Y6 devices (e.g., PM6:Y6_E6_0hrs).
Select a PM6:Y6 template (e.g., PM6:Y6_E6_0hrs) to create the simulation.

3. Examine the IS simulation

Frequency mesh tab of the FX domain experiment window showing defined frequency points for IS simulation.
Frequency mesh tab: define frequency points or ranges for impedance spectroscopy simulations.
Configure tab of the FX domain experiment window showing simulation parameters such as external voltage, excitation, measurement type, and modulation depth.
Configure tab: control excitation source, measurement type, modulation depth, and output options.

By going to the Editors ribbon in the main window and clicking FX Domain Editor, you will see the frequency domain editor pop up. Click on the IS tab (Impedance Spectroscopy).

If you then look at the Frequency mesh, you can see what frequency points are going to be simulated (??). In this example, individual frequency points are listed because the simulation was initially designed to match an experimental dataset. However, there’s no reason why you can’t define a continuous range with a start frequency, a stop frequency, and a maximum number of points. If you want the spacing between points to increase, you can adjust the Multiply value from 1.0 to, say, 1.05 or 0.01.

The next figure (??) shows the Configure tab, which controls how the simulation runs. Here, an impedance spectroscopy simulation is defined. The external bias (Vexternal) is set to 0 V, so the device is simulated at short circuit. The excitation is applied as a voltage, while the measured response is the current. This setup represents a typical impedance spectroscopy simulation, with a voltage modulation depth of 0.02 V. These are the key parameters that govern the IS experiment.

4. Running the simulation and output

As usual, start by returning to the main simulation window and clicking on the File ribbon. Then click Run Simulation (??). Alternatively, you can simply press F9 whilst in the main window.

After the simulation has finished — which may take some time, since it must compute responses across all wavelengths — navigate to the Output tab. Here you will find the various output files generated by the simulation (??).

OghmaNano main window showing a device structure with labeled layers (ITO, ZnO, PM6:Y6, MoOx, Ag). The Run simulation button is highlighted in the ribbon.
Main window: click the Run simulation button in the ribbon to start the impedance spectroscopy calculation.
Output tab in OghmaNano showing generated CSV result files such as fx_abs.csv, fx_C.csv, fx_imag.csv, fx_phi.csv, and fx_R.csv, as well as configuration and fit error files.
Output tab: after running the simulation, result files appear here (e.g., fx_abs.csv, fx_C.csv, fx_imag.csv, fx_phi.csv, fx_R.csv), along with configuration and fit-error data for further analysis.

5. Reading Bode & Nyquist plots

Bode: Re(Z) vs frequency revealing low- and high-frequency plateaus and a roll-off.
Bode (real): \(\mathrm{Re}[Z]\) vs. frequency (fx_real.csv).
Bode: Im(Z) vs frequency showing peaks near characteristic time constants.
Bode (imag): \(\mathrm{Im}[Z]\) vs. frequency (fx_imag.csv).
Bode: phase vs frequency with transitions around corner frequencies.
Bode (phase): \(\phi\) vs. frequency (fx_phi.csv).
Nyquist plot (−Im vs Re) showing a semicircle typical of an RC process; frequency markers included.
Nyquist: −Im vs. Re (frequency markers help locate characteristic peaks).

Once the simulation has finished, you can explore the results by double-clicking the IS output files in the Output tab. Before you begin, note 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 tools are useful to highlight features more clearly, so try applying them as soon as you open each plot. Each output file corresponds to a different part of the impedance spectrum:

Taken together, these plots show that your device is dominated by a single RC process in the \(10^3\)–\(10^4\) Hz range. At very low frequencies, the impedance is set by the full device resistance; at very high frequencies, it is limited by contact/series resistance. The strong semicircle and matching features across the Bode plots suggest that one particular resistive–capacitive pathway (likely linked to charge storage and transport in the active layer or interfaces) governs the frequency response. In practice, this means the device behaves like a fairly simple RC circuit: resistive at the extremes, with a clear capacitive relaxation process in between. Understanding where that process sits in frequency helps you connect it to the underlying physics — for example, whether the bottleneck is charge transport, interfacial capacitance, or contact resistance.

A summary of all files is given below.

File name Description
fx_abs.csv Plot of frequency against the absolute value of current.
fx_C.csv Plot of frequency against capacitance.
fx_imag.csv Plot of frequency against the imaginary component of the current.
fx_phi.csv Plot of frequency against the phase angle.
fx_R.csv Plot of frequency against resistance.
fx_real.csv Plot of frequency against the real component of the current.
real_imag.csv Nyquist plot of the real versus imaginary parts of the current as a function of frequency.

6. Summary & next steps

In this tutorial you learned how to configure and run impedance spectroscopy (IS) in OghmaNano, inspect Bode and Nyquist plots, and relate their features to device physics. The same methods can be applied to perovskite devices, OFETs, LEDs, and sensors. For deeper analysis, try exporting CSV outputs to fit equivalent circuits or compare with experimental data.

📝 Check your understanding (Impedance Spectroscopy)

💡 Tasks: Explore how IMPS responds to different physical and parasitic changes:

✅ Expected results

👉 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.