Materials database: Part A - Introduction
This page explains what’s in the OghmaNano Materials database, how to open and edit entries, how to import n-k or absorption data (including unit conversion), and where materials are stored on disk.
1. Overview
The OghmaNano Materials database stores a range of physical and reference properties for each material. These are organised into categories so that simulations can use consistent, centralised data. The main information includes:
- Optical constants:
- Basic metadata: Physical colour for 3D drawings, material type, privacy settings, and a change log ??.
- Material script: An optional Lua file can be used to define material parameters that vary as functions of temperature, position (x, y, z), composition, or photon density. This enables advanced material models such as temperature-dependent bandgaps, composition-dependent properties, and spatially varying electrical or thermal parameters. The script is not required for fixed material parameters, which can be entered directly using the standard editors. See Figure ??.
- Life-cycle data: Density, cost per kilogram, and energy per kilogram for embodied-energy and cost calculations ??.
Together, these datasets provide a central, consistent definition of each material for use across all simulations.
2. Accessing the materials database
Open the Materials Database from the Databases ribbon by clicking the Materials Database icon ??. This launches the Materials Database browser ??, where materials are organised into folders according to material class, including blends, elements, gases, glasses, metals, oxides, perovskites, polymers, and small molecules. A dedicated collection imported from refractiveindex.info is also provided.
Double-click a folder to browse its contents. For example, opening the Oxides folder displays the available oxide materials and subfolders ??. Folders are represented by conventional folder icons, while individual materials are represented by atom icons, making it easy to distinguish materials that can be opened directly from further groups of materials. Double-click an atom icon to open the corresponding material in the Material Editor and inspect its optical, electrical, and other physical properties.
3. Adding materials to the database
To add a new material open the Materials database, then click add material in the top right of the window (??), this will bring up a dialogue box which will ask you to give a name for your new material, this is visible in figure ??. In this case we called the material my_new_material.
my_new_material added to the Materials database.
my_new_material, initially empty of data.
Once you have clicked OK the new material will appear see Figure [fig:materialadd4], open it by double clicking on it. This will bring up an empty material window with no data. See Figure [fig:materialadd5].
Tip: Many commonly used materials are already provided in the OghmaNano Materials database, so in many cases you will not need to define a new material yourself. Additional n/k data can also be downloaded from open repositories such as refractiveindex.info. See Downloading more materials for instructions on how to add these datasets to OghmaNano. You can also reuse existing n/k datasets when the precise optical constants are not important to the simulation; for example, many organic semiconductor films have a refractive index of around 3 and absorption coefficients in the range 106–107 m-1, so using optical data from a similar material may make little difference to the calculated device behaviour. Not having exact optical or electrical parameters from the literature should not prevent you from carrying out a simulation, nor does finding a complete set of material parameters necessarily need to be the starting point. A simulation can often begin with representative values, which can then be refined as better material data become available. If you do need to define your own material, you only need to add the properties required for the physics you want to simulate. For example, a new non-electrically active interlayer or substrate may only require n(λ) and α(λ) for optical modeling. You do not need to define a Lua script unless you want material parameters to vary with quantities such as temperature, position (x, y, z), composition, or photon density. Emission data is only needed for emissive materials, and life-cycle data is only needed for life-cycle analysis.
4. Understanding n/k data (n/alpha data)
Before try to add n/k (n/alpha data) to OghmaNano , it’s important to understand what n-k data is. n-k data describes the complex refractive index of a material: the real part n and the imaginary part k.
- n (real refractive index): governs how light bends when entering the material (e.g. the beam deviation you see with a prism).
- k (extinction coefficient): governs optical loss due to absorption. A material with high k absorbs strongly (e.g. muddy water); a material with low k absorbs weakly (e.g. clear water).
There are several ways you will see optical loss written in the literature. Common forms include the absorption coefficient α (loss per metre, units m-1), the extinction coefficient k (the imaginary part of the refractive index, dimensionless), and absorbance (also called optical density), which is a logarithmic measure of transmission typically used in spectroscopy. It’s important to note that these are all the same physical quantity in principle, just expressed in different forms. OghmaNano accepts the absorption coefficient α in units of m-1. The box below explains the differences between these quantities and how to convert between them.
n, k, and absorption α — at a glance
The complex refractive index is \( N(\lambda) = n(\lambda) + i\,k(\lambda) \), where \(n\) (refractive index) and \(k\) (extinction coefficient) are dimensionless. OghmaNano stores:
- n(λ) in
n.csv(dimensionless) - α(λ) — absorption coefficient — in
alpha.csv(\(\mathrm{m^{-1}}\))
If you have \(k(\lambda)\) instead of \( \alpha(\lambda) \), the importer converts using: \( \displaystyle \alpha(\lambda) = \frac{4\pi\,k(\lambda)}{\lambda} \) (with \( \lambda \) in metres → \( \alpha \) in \( \mathrm{m^{-1}} \)).
From absorbance/optical density (A) or transmittance (T)
- \( A = -\log_{10}(T) \)
- \( \displaystyle \alpha = (\ln 10)\,\frac{A}{d} \) where \( d \) is film thickness (m)
Units to use: \( \lambda \) in metres (m); \(n\) and \(k\) are dimensionless; \( \alpha \) in \( \mathrm{m^{-1}} \). Curves labelled “a.u.” for absorption cannot be used directly.
Worked example — convert \(k \rightarrow \alpha\)
Given \( k=0.02 \) at \( \lambda=500\,\mathrm{nm}=5.00\times10^{-7}\,\mathrm{m} \):
\( \displaystyle \alpha = \frac{4\pi k}{\lambda} = \frac{4\pi \times 0.02}{5.00\times10^{-7}} \approx 5.03\times10^{5}\ \mathrm{m^{-1}} \).
5. Importing n/alpha data (or n/k data)
Click Import data from file at the top-left of the material window ?? to open the Import Data wizard ??. The tab that is currently selected determines where the imported data will be stored. If the Refractive Index tab is open, the data will be imported into the refractive index dataset; if the Absorption tab is selected, it will be imported into the absorption dataset. Make sure that you import the correct data into the correct tab.
OghmaNano stores optical data internally in the following SI formats:
- Refractive index n(λ): wavelength (m) vs refractive index (dimensionless).
- Absorption α(λ): wavelength (m) vs absorption coefficient (m-1).
Your source file does not need to use SI units. For the x-axis, the wizard can accept wavelength in nm, μm, cm, or m, as well as photon energy in eV, frequency, or angular frequency. For the y-axis, optical data can be supplied as refractive index n, extinction coefficient k, or absorption coefficient α, with the appropriate units selected to match the source data. The wizard then converts the input into the SI format used by OghmaNano, including conversions such as nm → m, cm-1 → m-1, and eV → wavelength using λ = hc/E. If your file contains k(λ), the wizard can also calculate α(λ) using α(λ) = 4πk(λ)/λ.
Import workflow
- Open the text or CSV file containing your data.
- Check the original data in the left-hand preview.
- Select the x-axis quantity and units so that they match the first column of your input file. For example, choose Wavelength (nm) if the wavelength values are given in nanometres.
- Select the y-axis quantity and units so that they match the second column of your input file. For example, choose Refractive index (au), Absorption (m^-1), Absorption (cm^-1), or Extinction coefficient (k) (au).
- Check the converted SI data in the right-hand panel.
- Click Import data to save the data to the material.
Example: If your file contains wavelength in nm in the first column and extinction coefficient k in the second column, select Wavelength (nm) for the x-axis and Extinction coefficient (k) (au) for the y-axis. OghmaNano will then convert the wavelength to metres and calculate α(λ) from k(λ) during the import.
The wizard view is shown in ??; after import, the plots update in the material editor ??. If you import only absorption, remember to also provide refractive index before using the material in a simulation.
Common pitfalls
- Absorption in “a.u.” or normalised to 1 → not usable, as it has lost its magnitude information..
- The final imported values will be in SI units, look at them - do they make sense - do a ballpark magnitude check?
👉 Next step: Now continue to Part B for tips on finding n/k data for your material system.