Home Examples Screenshots User manual Bluesky logo YouTube
OghmaNano Multiphysics simulation platform for optoelectronic devices and photonic systems DOWNLOAD Quick Start guide

MoO3 material model

1. Introduction

This page contains the OghmaNano material model for MoO3 (MoO3).

Molybdenum trioxide (alpha-MoO3), high-work-function hole-injection/extraction oxide

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


-- See end of file for copyright, licensing and documentation links.

local material = {}

function material.name()
	local enabled = true

	return "MoO3", enabled
end


function material.description()
	local enabled = true

	return "Molybdenum trioxide (alpha-MoO3), high-work-function hole-injection/extraction oxide", enabled
end


function material.formula()
	local enabled = true

	return "MoO3", enabled
end


function material.Eg(state)
	-- Units: eV
	--
	-- Reference:
	-- J. Meyer, A. Hamwi, M. Kroeger, W. Kowalsky, T. Riedl, A. Kahn,
	-- "Transition Metal Oxides for Organic Electronics: Energetics,
	-- Device Physics and Applications", Adv. Mater. 24, 5408-5427,
	-- 2012.
	--
	-- Optical gap of alpha-MoO3 ~3.0 eV (reported ~2.9-3.1 eV).
	--
	-- Temperature dependence not well characterised for evaporated
	-- films; a constant value is used.

	local enabled = true
	local value = 3.0

	return value, enabled
end


function material.Xi(state)
	-- Electron affinity
	-- Units: eV
	--
	-- Reference:
	-- M. Kroeger et al., Appl. Phys. Lett. 95, 123301, 2009;
	-- J. Meyer et al., Adv. Mater. 24, 5408, 2012.
	--
	-- This is the KEY device parameter for MoO3. Pristine alpha-MoO3
	-- has an exceptionally large electron affinity / work function
	-- ~6.7 eV, with a very deep-lying conduction band. This deep CB is
	-- what enables electron extraction from the HOMO of adjacent
	-- organics (charge-transfer / "n-type" hole-injection mechanism).
	--
	-- IMPORTANT: the effective work function degrades strongly on air
	-- exposure and mild reduction, commonly falling to ~5.3-5.7 eV in
	-- real devices. Choose the value to match your processing.

	local enabled = true
	local value = 6.7

	return value, enabled
end


function material.Nc(state)
	-- Effective conduction-band density of states
	-- Units: m^-3
	--
	-- Note: not well established for MoO3. The functioning carriers
	-- are electrons in an O-vacancy-derived gap/defect band rather
	-- than a clean parabolic conduction band, so this parabolic Nc is
	-- an order-of-magnitude placeholder only.

	local enabled = true
	local T = state.T
	local value = 1.0e25*(T/300.0)^1.5

	return value, enabled
end


function material.Nv(state)
	-- Effective valence-band density of states
	-- Units: m^-3
	--
	-- Note: order-of-magnitude placeholder; see Nc note.

	local enabled = true
	local T = state.T
	local value = 1.0e25*(T/300.0)^1.5

	return value, enabled
end


function material.mu_e(state)
	-- Low-field electron mobility
	-- Units: m^2 V^-1 s^-1
	--
	-- Reference:
	-- Evaporated/amorphous MoO3 transport is discussed in
	-- J. Meyer et al., Adv. Mater. 24, 5408, 2012.
	--
	-- Note: electron mobility is very low and extremely
	-- process-dependent, reported anywhere from ~1e-6 to ~1e-1
	-- cm^2/V/s. An effective 1e-4 cm^2/V/s = 1e-8 m^2/V/s is used as a
	-- representative (approximate) device value. Transport is
	-- trap/hopping limited (disordered film), so no phonon (300/T)^n
	-- power law is applied. Tune to match your layer.

	local enabled = true
	local value = 1.0e-8

	return value, enabled
end

function material.mue_x(state)
	return material.mu_e(state)
end

function material.mue_y(state)
	return material.mu_e(state)
end

function material.mue_z(state)
	return material.mu_e(state)
end


function material.mu_h(state)
	-- Low-field hole mobility
	-- Units: m^2 V^-1 s^-1
	--
	-- Note: MoO3 extracts holes from adjacent organics via electron
	-- transfer into its deep CB, NOT by hole conduction within MoO3
	-- itself, so intrinsic hole mobility is not the operative
	-- transport channel and is poorly constrained. Low placeholder.

	local enabled = true
	local value = 1.0e-9

	return value, enabled
end

function material.muh_x(state)
	return material.mu_h(state)
end

function material.muh_y(state)
	return material.mu_h(state)
end

function material.muh_z(state)
	return material.mu_h(state)
end


function material.epsilonr(state)
	-- Relative static permittivity
	-- Dimensionless
	--
	-- Reference:
	-- alpha-MoO3 optical constants / anisotropy discussed in
	-- J. Meyer et al., Adv. Mater. 24, 5408, 2012, and optical
	-- (ellipsometry) studies of MoO3.
	--
	-- Note: alpha-MoO3 is a layered orthorhombic crystal and its
	-- permittivity is strongly anisotropic and poorly constrained for
	-- device films. High-frequency epsilon_inf ~5.5 (n ~2.2); the
	-- static value is larger and axis-dependent. A representative
	-- (approximate) value is used; verify against your own data if the
	-- field distribution in this layer matters.

	local enabled = true
	local value = 5.5

	return value, enabled
end


function material.free_to_free_recombination(state)
	-- Radiative (band-to-band) recombination coefficient
	-- Units: m^3 s^-1
	--
	-- Note: MoO3 acts as a thin charge-selective buffer, not an
	-- absorber; bulk radiative recombination is not the operative
	-- physics. Poorly constrained placeholder.

	local enabled = true
	local value = 1.0e-19

	return value, enabled
end


function material.auger_Cn(state)
	-- Electron Auger recombination coefficient
	-- Units: m^6 s^-1
	--
	-- Note: not characterised. Order-of-magnitude placeholder.

	local enabled = true
	local value = 1.0e-43

	return value, enabled
end


function material.auger_Cp(state)
	-- Hole Auger recombination coefficient
	-- Units: m^6 s^-1
	--
	-- Note: not characterised. Order-of-magnitude placeholder.

	local enabled = true
	local value = 1.0e-43

	return value, enabled
end


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


function material.ss_srh_Nt(state)
	-- SRH trap density
	-- Units: m^-3
	--
	-- Material-quality dependent placeholder. Note that O vacancies
	-- give MoO3 a high gap-state density; the relevant value is very
	-- process-dependent.

	local enabled = true
	local value = 1.0e21

	return value, enabled
end


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


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


function material.thermal_conductivity(state)
	-- Thermal conductivity
	-- Units: W m^-1 K^-1
	--
	-- Reference:
	-- Low, anisotropic values from the MoO3 thermal-transport
	-- literature (CRC Handbook; layered-oxide studies).
	--
	-- Note: alpha-MoO3 is a van der Waals layered crystal with low,
	-- strongly anisotropic thermal conductivity (cross-plane much
	-- lower than in-plane). Evaporated device films are lower still. A
	-- low representative value is used; approximate / poorly
	-- constrained.

	local enabled = true
	local value = 1.0

	return value, enabled
end


function material.heat_capacity(state)
	-- Specific heat capacity
	-- Units: J kg^-1 K^-1
	--
	-- Reference:
	-- From molar heat capacity ~75 J/mol/K and M = 143.94 g/mol,
	-- c_p ~ 520 J/kg/K (CRC Handbook of Chemistry and Physics;
	-- thermochemical data). Approximate.

	local enabled = true
	local value = 520.0

	return value, enabled
end


function material.density(state)
	-- Mass density
	-- Units: kg m^-3
	--
	-- Reference:
	-- alpha-MoO3 rho = 4.69 g/cm^3 (CRC Handbook of Chemistry and
	-- Physics).

	local enabled = true
	local value = 4690.0

	return value, enabled
end


function material.lattice_constant(state)
	-- Cubic lattice constant
	-- Units: m
	--
	-- DISABLED: alpha-MoO3 is orthorhombic and layered (van der Waals
	-- stacking along b), NOT cubic, so a single cubic lattice constant
	-- is not meaningful.
	--
	-- Reference (crystallography):
	-- R. W. G. Wyckoff, "Crystal Structures".
	-- alpha-MoO3: a = 3.963 A, b = 13.855 A, c = 3.696 A.
	-- The a-axis value is returned for reference only.

	local enabled = false
	local value = 3.963e-10

	return value, enabled
end


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("Thermal conductivity:   %.6e W/m/K", material.thermal_conductivity(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.
-- ============================================================================