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

Large-Area Perovskite Module Tutorial Part A: Quick start – open the example and build the circuit mesh

Most device-level simulations in OghmaNano are drift-diffusion simulations, where the solver resolves coupled carrier transport and electrostatics in detail. That physics-first approach is excellent for understanding how a device works, but it becomes computationally too expensive as soon as you move beyond a single small-area cell into large-area devices and modules made from many connected sub-cells.

This tutorial introduces a complementary approach: representing the large-area device as a 3D electrical circuit and solving it using Kirchhoff’s current law and Kirchhoff’s voltage law. Instead of tracking electron and hole currents and the electrostatic potential everywhere, the circuit model tracks the quantities a module engineer usually cares about: current and voltage. This simplification is (i) far more numerically stable at scale, and (ii) fast enough to let you explore realistic module geometries.

Conceptually, the 3D structure is discretised into a set of nodes (points in the device) connected by links that represent circuit elements such as resistors and diodes. Optical generation is included using a quasi-3D transfer-matrix approach: a 1D transfer-matrix calculation is performed through the stack, evaluated across the device area, and the resulting generation profile is coupled into the circuit network. The end result is a practical model for asking upscaling questions like: “My lab-scale device is 20% at 1 mm × 1 mm — what happens when I scale it up into a module, and what becomes the limiting factor?”

The experimental inspiration: carbon perovskite “fingers” made into modules

The example module in this tutorial is inspired by experimental work from the Swansea group: Energies 2021, 14, 386, “Triple-Mesoscopic Carbon Perovskite Solar Cells: Materials, Processing and Applications” (Simone M. P. Meroni, Carys Worsley, Dimitrios Raptis, and Trystan M. Watson). You can open the paper via the DOI link here: https://doi.org/10.3390/en14020386.

Schematic cross-section of a triple-mesoscopic carbon perovskite structure showing carbon, ZrO2, TiO2 layers on FTO glass with perovskite infiltrated throughout the stack and an indicated active area.
Experimental inspiration (single “finger” concept): a carbon / ZrO2 / TiO2 triple-mesoscopic stack on FTO, infiltrated with perovskite. A multi-finger module connects many such fingers together. From Meroni et al., Energies 2021, 14, 386.
Roll-to-roll process diagram for manufacturing the triple-mesoscopic carbon perovskite device showing sequential rotary screen printing steps, NIR curing, laser patterning steps (P2, P3), and infiltration.
Roll-to-roll style processing route used to fabricate these structures at scale. This manufacturing context is exactly why module-level modelling matters: you want to understand performance losses before building metres of product. From Meroni et al., Energies 2021, 14, 386.

🔗 Paper and licence: The figures above are taken from https://doi.org/10.3390/en14020386. The article is open access and distributed under the Creative Commons Attribution (CC BY) licence: https://creativecommons.org/licenses/by/4.0/ (Copyright: © 2021 by the authors; licensee MDPI, Basel, Switzerland).

Step 1: Create a new perovskite module simulation

Start from the main OghmaNano window and click New simulation. This opens the device/library chooser shown in ??. Double-click Large area 3D device modules, then select Perovskite module as shown in ??. When prompted, save the simulation to a folder you have fast read/write access to (e.g. C:\ on Windows).

💡 Tip: Avoid saving simulations to network drives, USB sticks, or cloud-synchronised folders (e.g. OneDrive). Large-area simulations tend to generate many intermediate files; background sync and network latency can make runs feel unnecessarily slow.

OghmaNano new simulation window showing a grid of simulation categories.
Click New simulation to open the library. For this tutorial, open Large area 3D device modules.
OghmaNano examples list showing entries including perovskite module.
Select Perovskite module to open a preconfigured multi-finger large-area example.

Step 2: Inspect the 3D structure and understand current flow

After selecting the template, the main simulation window opens and you will see the 3D device structure (??). This example consists of five fingers — each dark “bar” is an individual solar-cell finger within the larger module geometry.

Main OghmaNano window showing a 3D view of a multi-finger perovskite module geometry with five fingers, yellow contact blocks, and green arrows indicating current flow direction.
The Perovskite module example in OghmaNano. The structure is composed of multiple “fingers” (sub-cells). The yellow blocks indicate the contact regions: any mesh points directly below these blocks will be treated as electrical contacts.

In this device the dark top region is a carbon contact infiltrated with perovskite (a characteristic feature of this triple-mesoscopic architecture). The module connects the fingers so that the current follows a zig-zag path through the structure. In practical terms, current enters at one side, travels through a contacted region, then is forced to “step” between fingers — up/down and across — until it reaches the terminal on the opposite side.

The contacts can look like they are floating in space (yellow blocks), but they should be interpreted as a contact mask: the region directly underneath is what becomes electrically contacted once the circuit mesh is built.

Step 3: Build the circuit mesh from the 3D device

Next, switch to the Circuit diagram tab. In the bottom-left corner you will find a refresh button (it looks like a recycle icon). Click this to build the circuit mesh from the current 3D structure. The initial view is shown in ??.

Rotate the view and zoom in: you will see the mesh links representing the circuit connections across the fingers (?? and ??). If you look closely, you will also notice small blue nodes — these denote contact nodes, and you should see them located directly beneath the yellow contact blocks from the 3D structure view.

Circuit diagram view showing the generated 3D circuit mesh for the perovskite module.
Circuit mesh after pressing the refresh (recycle) icon in the Circuit diagram tab.
Rotated view of the circuit mesh showing internal connectivity across the module fingers.
Rotated view: the circuit links connect nodes throughout the finger structure.
Closer view of the circuit mesh showing dense connectivity and visible blue nodes indicating contact points.
Zoomed view: blue nodes denote electrical contacts, positioned beneath the contact regions.

If you spin the device around further you will obtain a view like ??, which makes the multi-finger connectivity and the “zig-zag” collection pathway particularly clear.

Alternative rotated view of the circuit mesh highlighting the multi-finger geometry and connection path.
Alternative view of the circuit mesh showing how the fingers are interconnected to form a module-scale current pathway.

Step 4: Inspect and verify the electrical contacts

To examine contacts directly, open the Contact editor (??). This editor lists the contacts defined for the simulation and shows how they are applied to the device (for example, which side they occupy and what bias is applied). The critical sanity check is simple: the contact definitions here should be consistent with (i) the yellow contact blocks in the 3D view and (ii) the blue contact nodes visible in the circuit mesh.

OghmaNano contact editor table listing contacts with columns for name, top/bottom, applied voltage, start position, width, and ID.
The Contact editor provides a structured view of how contacts are applied to the device. Use it to verify that the intended contacted regions match what you see in the 3D view and the circuit mesh.
✅ What to expect

After building the mesh, the Circuit diagram view should show a dense 3D network of links. You should be able to identify blue nodes that represent contacts, and these should sit directly beneath the contact regions defined by the yellow blocks in the 3D structure view. If you do not see contact nodes where you expect them, the most likely causes are: (i) contact regions not overlapping the discretised mesh, or (ii) contacts defined on the wrong side/region in the contact editor.

👉 Next step: Continue to Part B where we explain (in detail) what the circuit model is solving, how optical generation is coupled in, and why this approach is the right tool for module-scale questions.