ZnO material model
1. Introduction
This page contains the OghmaNano material model for ZnO (ZnO).
Zinc oxide (wurtzite), n-type wide-gap semiconductor / window / electron-transport layer
The model is written in Lua and provides simulation-ready material parameterisations for use within OghmaNano. For documentation, licensing, references, and information about the scope and accuracy of these models, see the material scripting documentation.
2. Lua material model
Supporting definitions
-- See end of file for copyright, licensing and documentation links.
local material = {}
Material name (material.name)
function material.name()
local enabled = true
return "ZnO", enabled
end
Material description (material.description)
function material.description()
local enabled = true
return "Zinc oxide (wurtzite), n-type wide-gap semiconductor / window / electron-transport layer", enabled
end
Chemical formula (material.formula)
function material.formula()
local enabled = true
return "ZnO", enabled
end
Band gap energy (material.Eg)
function material.Eg(state)
-- Units: eV
--
-- Reference:
-- U. Ozgur et al., "A comprehensive review of ZnO materials and
-- devices", J. Appl. Phys. 98, 041301, 2005.
--
-- Direct gap ~3.37 eV at 300 K. Note the large free-exciton
-- binding energy (~60 meV), so near-band-edge optics is strongly
-- excitonic. T-dependence exists but is not a clean Varshni fit;
-- a constant value is used here rather than fitted coefficients.
local enabled = true
local value = 3.37
return value, enabled
end
Deformation potential Xi (material.Xi)
function material.Xi(state)
-- Electron affinity
-- Units: eV
--
-- Reference:
-- ZnO electron affinity ~4.1-4.35 eV (U. Ozgur et al.,
-- J. Appl. Phys. 98, 041301, 2005; device-alignment literature).
--
-- A representative 4.2 eV is used. Shallow CB makes ZnO a good
-- electron-transport / window layer. Approximate.
local enabled = true
local value = 4.2
return value, enabled
end
Effective conduction-band density of states (material.Nc)
function material.Nc(state)
-- Effective conduction-band density of states
-- Units: m^-3
--
-- Reference:
-- From ZnO CB effective mass m_e* ~ 0.26 m0 (U. Ozgur et al.,
-- J. Appl. Phys. 98, 041301, 2005):
-- Nc(300 K) ~ 3.7e18 cm^-3 = 3.7e24 m^-3. Approximate.
local enabled = true
local T = state.T
local value = 3.7e24*(T/300.0)^1.5
return value, enabled
end
Effective valence-band density of states (material.Nv)
function material.Nv(state)
-- Effective valence-band density of states
-- Units: m^-3
--
-- Reference:
-- From ZnO valence-band mass m_h* ~ 0.6 m0 (U. Ozgur et al.,
-- J. Appl. Phys. 98, 041301, 2005):
-- Nv(300 K) ~ 1.1e19 cm^-3 = 1.1e25 m^-3. Approximate.
local enabled = true
local T = state.T
local value = 1.1e25*(T/300.0)^1.5
return value, enabled
end
Electron mobility (material.mu_e)
function material.mu_e(state)
-- Low-field electron mobility
-- Units: m^2 V^-1 s^-1
--
-- Reference:
-- Bulk single-crystal ZnO ~200-440 cm^2/V/s (U. Ozgur et al.,
-- J. Appl. Phys. 98, 041301, 2005).
--
-- Note: a bulk value of 200 cm^2/V/s = 0.02 m^2/V/s is returned.
-- Sol-gel / nanoparticle ZnO device films are ORDERS of magnitude
-- lower and grain-boundary limited; reduce accordingly. No phonon
-- (300/T)^n law applied (film transport is not phonon limited).
-- Approximate.
local enabled = true
local value = 0.02
return value, enabled
end
Electron mobility in the x direction (material.mue_x)
function material.mue_x(state)
return material.mu_e(state)
end
Electron mobility in the y direction (material.mue_y)
function material.mue_y(state)
return material.mu_e(state)
end
Electron mobility in the z direction (material.mue_z)
function material.mue_z(state)
return material.mu_e(state)
end
Hole mobility (material.mu_h)
function material.mu_h(state)
-- Low-field hole mobility
-- Units: m^2 V^-1 s^-1
--
-- Note: ZnO hole mobility is poorly constrained (stable p-type ZnO
-- is notoriously hard to achieve). Reported ~5-50 cm^2/V/s. As a
-- window/ETL, holes are the blocked minority carrier. Low
-- placeholder (~5 cm^2/V/s).
local enabled = true
local value = 5.0e-4
return value, enabled
end
Hole mobility in the x direction (material.muh_x)
function material.muh_x(state)
return material.mu_h(state)
end
Hole mobility in the y direction (material.muh_y)
function material.muh_y(state)
return material.mu_h(state)
end
Hole mobility in the z direction (material.muh_z)
function material.muh_z(state)
return material.mu_h(state)
end
Relative dielectric permittivity (material.epsilonr)
function material.epsilonr(state)
-- Relative static permittivity
-- Dimensionless
--
-- Reference:
-- ZnO static permittivity ~8.5 (U. Ozgur et al., J. Appl. Phys.
-- 98, 041301, 2005). High-frequency epsilon_inf ~3.7.
--
-- Note: slightly anisotropic (wurtzite); a representative value is
-- used.
local enabled = true
local value = 8.5
return value, enabled
end
Free-carrier radiative recombination (material.free_to_free_recombination)
function material.free_to_free_recombination(state)
-- Radiative (band-to-band) recombination coefficient
-- Units: m^3 s^-1
--
-- Reference:
-- Representative bimolecular coefficient for direct-gap ZnO,
-- ~1e-10 cm^3/s = 1e-16 m^3/s.
--
-- Note: ZnO is a DIRECT-gap UV emitter, so unlike the indirect
-- oxides radiative recombination can matter; but near-edge
-- emission is excitonic and B is not tightly constrained. Treat as
-- approximate.
local enabled = true
local value = 1.0e-16
return value, enabled
end
Electron Auger recombination coefficient (material.auger_Cn)
function material.auger_Cn(state)
-- Electron Auger recombination coefficient
-- Units: m^6 s^-1
--
-- Note: weak in wide-gap ZnO and poorly constrained.
-- Order-of-magnitude placeholder.
local enabled = true
local value = 1.0e-43
return value, enabled
end
Hole Auger recombination coefficient (material.auger_Cp)
function material.auger_Cp(state)
-- Hole Auger recombination coefficient
-- Units: m^6 s^-1
--
-- Note: as for Cn, poorly constrained placeholder.
local enabled = true
local value = 1.0e-43
return value, enabled
end
Interface trap energy (material.ss_srh_trap_energy)
function material.ss_srh_trap_energy(state)
-- SRH trap energy relative to the middle of the band gap.
-- Units: eV
--
-- Positive values are above mid-gap (towards the conduction band).
-- Negative values are below mid-gap (towards the valence band).
local enabled = true
local value = 0.0
return value, enabled
end
Interface trap density (material.ss_srh_Nt)
function material.ss_srh_Nt(state)
-- SRH trap density
-- Units: m^-3
--
-- Material-quality dependent placeholder. ZnO commonly carries
-- native point defects (O vacancies, Zn interstitials) that act as
-- recombination/doping centres; set from measurement.
local enabled = true
local value = 1.0e21
return value, enabled
end
Interface electron capture cross-section (material.ss_srh_sigma_n)
function material.ss_srh_sigma_n(state)
-- Electron capture cross section
-- Units: m^2
local enabled = true
local value = 1.0e-19
return value, enabled
end
Interface hole capture cross-section (material.ss_srh_sigma_p)
function material.ss_srh_sigma_p(state)
-- Hole capture cross section
-- Units: m^2
local enabled = true
local value = 1.0e-19
return value, enabled
end
Lattice thermal conductivity (material.thermal_kl)
function material.thermal_kl(state)
-- Thermal conductivity
-- Units: W m^-1 K^-1
--
-- Reference:
-- Bulk single-crystal ZnO ~50-100 W/m/K, anisotropic (CRC
-- Handbook; U. Ozgur et al., J. Appl. Phys. 98, 041301, 2005).
--
-- Note: thin/nanostructured films are much lower. A conservative
-- bulk value is returned. Approximate.
local enabled = true
local value = 50.0
return value, enabled
end
Specific heat capacity (material.heat_capacity)
function material.heat_capacity(state)
-- Specific heat capacity
-- Units: J kg^-1 K^-1
--
-- Reference:
-- ZnO, c_p(300 K) ~ 495 J/kg/K (CRC Handbook of Chemistry and
-- Physics).
local enabled = true
local value = 495.0
return value, enabled
end
Mass density (material.density)
function material.density(state)
-- Mass density
-- Units: kg m^-3
--
-- Reference:
-- ZnO (wurtzite) rho = 5.61 g/cm^3 (CRC Handbook of Chemistry and
-- Physics).
local enabled = true
local value = 5610.0
return value, enabled
end
Crystal lattice constant (material.lattice_constant)
function material.lattice_constant(state)
-- Cubic lattice constant
-- Units: m
--
-- DISABLED: ZnO is hexagonal (wurtzite), NOT cubic, so a single
-- cubic lattice constant is not meaningful.
--
-- Reference (crystallography):
-- R. W. G. Wyckoff, "Crystal Structures".
-- Wurtzite ZnO: a = 3.2495 A, c = 5.2069 A at 300 K.
-- The a-axis value is returned for reference only.
local enabled = false
local value = 3.2495e-10
return value, enabled
end
Electron thermal relaxation time (material.thermal_tau_e)
function material.thermal_tau_e(state)
-- Electron energy relaxation time towards the lattice temperature
-- Units: s
--
-- Value basis: Literature-guided
-- Confidence: Medium
--
-- Reference:
-- https://doi.org/10.1021/jp802455p
--
-- Comments:
-- Ultrafast ZnO electron cooling is sub-ps. Hole transport is usually trap
-- dominated, so 1 ps is a conservative fallback.
local enabled = true
local value = 4.500000e-13
return value, enabled
end
Hole thermal relaxation time (material.thermal_tau_h)
function material.thermal_tau_h(state)
-- Hole energy relaxation time towards the lattice temperature
-- Units: s
--
-- Value basis: Literature-guided
-- Confidence: Medium
--
-- Reference:
-- https://doi.org/10.1021/jp802455p
--
-- Comments:
-- Ultrafast ZnO electron cooling is sub-ps. Hole transport is usually trap
-- dominated, so 1 ps is a conservative fallback.
local enabled = true
local value = 1.000000e-12
return value, enabled
end
Material parameter summary (material.print)
function material.print()
local state = {
T = 300.0,
x = 0.0,
y = 0.0,
z = 0.0,
photon_density = 0.0,
}
print(string.format("Material: %s", material.name()))
print(string.format("Description: %s", material.description()))
print(string.format("Formula: %s", material.formula()))
print(string.format("Temperature: %.2f K", state.T))
print(string.format("Position: %.6e, %.6e, %.6e m", state.x, state.y, state.z))
print(string.format("Photon density: %.6e m^-3", state.photon_density))
print(string.format("Band gap: %.6f eV", material.Eg(state)))
print(string.format("Electron affinity: %.6f eV", material.Xi(state)))
print(string.format("Electron mobility: %.6e m^2/V/s", material.mu_e(state)))
print(string.format("Hole mobility: %.6e m^2/V/s", material.mu_h(state)))
print(string.format("Nc: %.6e m^-3", material.Nc(state)))
print(string.format("Nv: %.6e m^-3", material.Nv(state)))
print(string.format("Relative permittivity: %.6f", material.epsilonr(state)))
print(string.format("Radiative coeff.: %.6e m^3/s", material.free_to_free_recombination(state)))
print(string.format("Electron Auger coeff.: %.6e m^6/s", material.auger_Cn(state)))
print(string.format("Hole Auger coeff.: %.6e m^6/s", material.auger_Cp(state)))
print(string.format("SRH trap energy: %.6f eV", material.ss_srh_trap_energy(state)))
print(string.format("SRH trap density: %.6e m^-3", material.ss_srh_Nt(state)))
print(string.format("SRH sigma n: %.6e m^2", material.ss_srh_sigma_n(state)))
print(string.format("SRH sigma p: %.6e m^2", material.ss_srh_sigma_p(state)))
print(string.format("Electron energy relax.: %.6e s", material.thermal_tau_e(state)))
print(string.format("Hole energy relax.: %.6e s", material.thermal_tau_h(state)))
print(string.format("Thermal conductivity: %.6e W/m/K", material.thermal_kl(state)))
print(string.format("Heat capacity: %.6e J/kg/K", material.heat_capacity(state)))
print(string.format("Mass density: %.6e kg/m^3", material.density(state)))
end
return material
-- ============================================================================
-- Copyright (C) 2026 The OghmaNano Project
-- All rights reserved.
--
-- This file is part of the OghmaNano Materials Model Library.
--
-- Website:
-- https://www.oghma-nano.com
--
-- Documentation and accuracy statement:
-- https://www.oghma-nano.com/manual/material-scripts.html
--
-- These material models are provided to support scientific research and
-- semiconductor device simulation. If you find them useful, please cite
-- OghmaNano where appropriate. Please do not redistribute these files or
-- incorporate them into other software or databases without permission.
-- ============================================================================