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

Getting started

Simulating a JV curve of a simple solar cell

No matter which type of device you want to simulate, if you are new to OghmaNano my advice is to start off with this organic solar cell simulation. Organic solar cells are by far the most simple class of device you can simulate, and will let you understand the basics of the package without having to deal with 2D effects, perovskite ions of light emission. This chapter will guide you through your first organic solar cell and explain the nuts and bolts of running simulations with OghmaNano. Once installed OghmaNano appear on the start menu, click on it to launch it. Once run, a window resembling that in figure [fig:new_open] will appear.

Open new simulation
[fig:new_open]

Making your first simulation

Click on the \(new~simulation\) button. This will bring up the new simulation window (see figure [fig:new_new]). From this window double click on the \(Organic~Solar~Cells\) icon. This will bring up a sub menu of different types of Organic Solar cells (see figure [fig:new_opv]). The majority of these device simulations have been published in papers and calibrated to real organic solar cells. The oldest is the (non-inverted) P3HT:PCBM device from 2012 and the newest are the PM6:Y6 devices from 2022 . Double click on the P3HT:PCBM simulation for this example and save the new simulation to disk.

Once you have saved the simulation, the main OghmaNano simulation window will be brought up (see figure 3.1). You can look around the structure of the solar cell, by dragging the picture of the solar cell with your mouse. Try pressing on the buttons beneath the red square, they will change the orientation to the xy, yz or xz plane. Notice the x,y,z origin marker in the bottom left of the 3D window. The icon with four squares will give you an orthographic view of the solar cell.

Click on the button called Run simulation, to run the simulation (hint it looks like a blue play button and is located in the file one to the right of the "Simulation type ribbon" ). The function key F9 will also run the simulation. On slower computers it could take a while. Once the simulation is done, click on the \(Output\) tab (see figure 3.1), there you will see a list of files the simulation has written to disk.

Create new simulation
[fig:new_new]
Create new OPV device simulation
[fig:new_opv]

What’s the best place to save your simulation?

OghmaNano dumps a lot of data to disk, I therefore recommend you save the simulation to a local disk such as the C:\drive, a network drive or USB stick drive will be far too slow for the simulation to run. I would also not save the simulation onto OneDrive or Dropbox as they are also too slow and saving it there will generate a lot of network traffic. If you are a power user doing a lot of fitting of experimental data I would also recommend (at your own risk(!)) disabling any extra antivirus software you have installed, as quite often the antivirus software can’t keep up with the read/writes to disk.

The main OghmaNano simulation window with the xy, yz and xz buttons visible. The play button is also visible which is used to run the simulation, the function key F9 can also be used to run the simulation.

The output from your first simulation

After you have clicked on the Run Simulation button (or pressed the function key F9) to run the simulation, the results from the simulation will have been written to disk. To view these results click on the Output tab in the main window. There you will see the output from the simulation, this is visible in figure 3.1

The Output tab this is just like windows file explorer, you can explore the simulation directory tree.

Key files the simulation produces are listed in the table below:

Files produced by the JV simulation
File name Description
\(jv.dat\) Current v.s. voltage curve
\(charge.csv\) Voltage v.s. charge density curve
\(device.dat\) The 3D device model
\(fit\_data*.inp\) Experimental data for this device.
\(k.csv\) Voltage v.s. Recombination constant k
\(reflect.csv\) Optical reflection from device
\(transmit.csv\) Optical transition through device
\(snapshots\) Electrical snapshots see 19.1
\(optical\_snapshots\) Optical snapshots see 19.3
\(sim\_info.dat\) Calculated \(V_{oc}\), \(J_{sc}\) etc.. see 4.1.4
\(cache\) Cache see 19.4

Try opening \(jv.dat\). This is a plot of the voltage applied to the solar cell against the current generated by the device. These curves are also sometimes called the characteristic diode curve, we can tell a lot about the solar cell’s performance by looking at these curves. Hit the ’g’ key to bring up a grid.

JV curve plot
The output tab

Now try opening up the file \(sim\_info.dat\), this file displays information on the performance of the solar cell, such as the Open Circuit Voltage (\(V_{oc}\) - the maximum Voltage the solar cell can produce when iluminated), efficiency (\(\eta\) - the efficiency of the cell) , and short circuit current (\(J_{sc}\) - the maximum current the cell can produce when it is illuminated). Figure 3.3, shows where you can find these values on the JV curve. The \(sim\_info.dat\) file contains a lot of other parameters, these are described in detail in section 4.1.4.

Editing device layers

Layer editor
[fig:layereditor]

Any device in OghmaNano consists of a series of layers (this is sometimes referred to as the epitaxy - this is a term which comes from inorganic semiconductors). The layer editor can be accessed from the main simulation window, under the device structure tab. This is visible towards the top of figure 3.1, and the layer editor is visible in figure [fig:layereditor]. Within the window is a table that describes the structure of the device. The column thickness describes the thickness of each layer. The P3HT:PCBM layer is the layer of material which converts photons into electrons and holes, this is commonly called the active layer.

An active layer thickness of 50nm is considered very thin for an organic solar cell, while an active layer of 400nm is considered very thick (too thick for efficient device operation). Vary the active layer between 50 nm and 400 nm, for each thickness record the device efficiency (I suggest you perform the simulation for at least eight active layer widths).

More on the layer editor

The layer editor has the following columns:

Which layers should be active?

A common mistake people make when starting to simulate devices is to try to make all the layers in their device active because their logic is: Current must be flowing through them so they must be active right? However, in for example a solar cell only the BHJ or in a perovskite device the perovskite layer will have both species of carriers (electrons+holes) and complex effects such as photogeneration, recombination and carrier trapping. So in this layer it makes sense to solver the drift diffusion equations. Other layers which don’t have both species of carriers can be treated simple parasitic resistances see section 3.1.6. I would only recommend setting other layers of the device to active (such as the HTL/ETL) if you are trying to investigate effects such as s-shaped JV curves or devices which clearly need multiple active layers such as OLEDs. In general, try to minimize the number of active layers and always keep simulations as simple as possible to explain the physical effects you see.

How do solar cells absorb light?

In this section we are going to learn how a solar cells interact with light. Firstly, let’s have a look at the solar spectrum. Sunlight contains many wavelengths of light, from ultraviolet light, though to visible light to infrared. The human eye can only see a small fraction of the light emitted by the sun. OghmaNano stores a copy of the suns spectrum to perform the simulations. Let’s have a look at this spectrum, to do this go to the Database tab, the choose Optical database. This should, bring up a window as shown in figure 3.4

Optical database viewer
The optical database viewer

Double click on the icon called, AM1.5G, this should bring up a spectrum of the sun’s spectrum. Have a look at where the peak of the spectrum is. Now close this window, and open the spectrum called \(led\). Where is the peak of this spectrum.

a: A plot of the entire solar spectrum. b: The image below shows the solar spectrum at 392 nm (blue) to 692 nm (red) as observed with the Fourier Transform Spectrograph at Kitt Peak National Observatory in 1981. R. Kurucz
a: A plot of the entire solar spectrum. b: The image below shows the solar spectrum at 392 nm (blue) to 692 nm (red) as observed with the Fourier Transform Spectrograph at Kitt Peak National Observatory in 1981. R. Kurucz

Light inside solar cells

As you will have seen from when you fist opened the simulation, the solar cells are often made from many layers of different materials. Some of these materials, are designed to absorb light, some are designed to conduct charge carriers out of the cell. The simulator has a database of these materials, to look at the database, click on the \(Database\) tab, the click on Material database. This should bring up a window as shown in figure 3.5, once this is open navigate to the directory \(polymers\), and double click on the material \(p3ht\), in the new window click on the tab \(Absorption\) (see figure 3.6). This plot shows how light is absorbed in the material as a function of wavelength.

Materials database
The materials database
Optical absorption
Optical absorption of the light.

Parasitic elements

Many devices have parasitic shunt and series resistances associated with them. Shunt resistances (\(R_{s}\)) are caused by conduction straight through the device in thin novel devices this is often caused by impurities in the material system. Parasitic series resistances (\(R_{s}\)) are often associated with the resistance of the contacts, the resistance of the HTL/ETL or any other resistances which are not associated with the active layer. These resistance can be seen for a typical solar cell in figure [fig:parasitic_circuit] also shown in the figure is the ideal diode of the device. These resistances can be set in the parasitic component window shown in figure [fig:parasitic]

Parasitic circuit
[fig:parasitic_circuit]
Parasitic components window
[fig:parasitic]

You can change the values of series and shunt resistance in OghmaNano, by going to the Electrical tab and then clicking on the Parasitic components button. Due to the flat broad contacts on a solar cell, there is often a capacitance associated with the device, this is important for transient measurements and can be calculated with the equation:

\[C=\frac{\epsilon_r \epsilon_0 A}{d+\Delta}\]

where \(A\) is the area of the device \(\epsilon\) are the hyperactivities, and \(d\) is the thickness of the device. Often for various reasons the measured capacitance of the device does not match what one would expect from the above equation. Therefore the term "Other layers" (\(\Delta\)) has been added to the parasitic window to account for differences between measured capacitance and layer measured layer thicknesses.

Solar cells in the dark

So far, all the simulations we have run have been performed in the light. This is a logical, as usually we are interested in solar cell performance only in the light. However, a lot of interesting information can be gained about solar cells by studying their performance in the dark. We are now going to turn off the light in the simulation. From the Optical tab set the Light intensity (suns) drop down menu to 0.0 Suns, this can be seen in figure [fig:dark]. The photons in the 3D image should disappear as seen in figure [fig:dark].

Device in the dark
[fig:dark]
JV curve in the dark
[fig:jv_dark]



Now set the shunt resistance to \(1M \Omega m^2\), and run a simulation. Plot the jv curve. It is customary to plot jv curves on a x-linear y-log scale. To do this in the plot window, hit the ’l’ key to do this. The shape should resemble, the JV curve in figure [fig:jv_dark]. Certain solar cell parameters affect different parts of the dark JV curve differently, the lower region is affected very strongly by shunt resistance, the middle part is affected strongly by recombination, and the upper part is strongly affected by the series resistance.

The contact editor

The contact editor is used to configure the electrical contacts. Which layers act as contacts is configured in the layer editor see section 3.1.3. The contact editor has the following fields:

Contact editor
The contact editor

Electrical parameters

The electrical parameter editor enables you to change the electrical parameters associated with the active layers. Here you can change mobilities, trap constants etc. If you set a layer to active wihtin the layer editor it will apear within the electrical paramter editor. The toolbar at the top of the window allows you to turn off and on various electrical mechanisms including:

Electrical parameter window
Electrical parameter window

How do I know what electrical parameters to use?

For traditional semiconductors that have been studied for years such as AlGaAs or InP the values of charge carrier mobility, band gap, electron affinity (etc..) are well known and can simply be looked up on sites such as this or in books such in Piprek’s excellent book. These materials are highly pure (99.999999999%) (the so-called "eleven nines" purity). This means that when one has a sample of such a semiconductor one knows exactly what one has in the hand and what its physical properties will be. Organic semiconductors (also other novel materials such as perovskites etc..) on the are typically only 99.9% on a good day, that is a whole eight orders of magnitude less pure than their traditional counterparts. This means that when one has a sample of such a material one is not exactly sure what material one has hold of so it’s harder to know what the values of mobility etc will be.

Furthermore, traditional semiconductors are very ordered, this means that the atoms within them pack in a regular lattice (think marbles packing in a biscuit tin) this again helps make their electronic properties predictable. Novel semiconductors on the other hand are typically much more disordered than their traditional counterparts and consist of a higgldy piggidly collection of polymers/molecules (or perovskite domains etc..), and the exact structure of these materials depends very much on how they were deposited. This means that due to fabrication techniques/conditions varying between different labs, nominally the same material produced by the same suppler but can behave very differently depending on when/who/where it was deposited by.

So this brings us back to the question that started this section, what parameters should I use for my novel device? Here are some tips: