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

MoOx material model

1. Introduction

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

Sub-stoichiometric molybdenum oxide (MoO3-x), oxygen-deficient 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

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 "MoOx", enabled
end

Material description (material.description)

function material.description()
	local enabled = true

	return "Sub-stoichiometric molybdenum oxide (MoO3-x), oxygen-deficient high-work-function hole-injection/extraction oxide", enabled
end

Chemical formula (material.formula)

function material.formula()
	local enabled = true

	return "MoO3-x", enabled
end

Band gap energy (material.Eg)

function material.Eg(state)
	-- Units: eV
	--
	-- Reference:
	-- J. Meyer et al., "Transition Metal Oxides for Organic
	-- Electronics", Adv. Mater. 24, 5408-5427, 2012.
	--
	-- Host alpha-MoO3 optical gap ~3.0 eV.
	--
	-- Note: this is the OXYGEN-DEFICIENT oxide. Sub-stoichiometry
	-- introduces a dense manifold of O-vacancy gap states below the
	-- conduction band; near the Fermi level the transport-relevant
	-- states are these defect states, not the nominal 3.0 eV gap.
	-- Constant value.

	local enabled = true
	local value = 3.0

	return value, enabled
end

Deformation potential Xi (material.Xi)

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;
	-- M. T. Greiner et al., Nat. Mater. 11, 76, 2012.
	--
	-- This is the KEY device parameter. The host oxide has a very deep
	-- conduction band (electron affinity ~6.7 eV) which enables
	-- electron extraction from the HOMO of adjacent organics
	-- (charge-transfer hole-injection mechanism).
	--
	-- IMPORTANT: real reduced MoOx films have a LOWER effective work
	-- function than pristine MoO3, typically ~5.3-5.7 eV, because
	-- filled O-vacancy gap states pin the Fermi level below the deep
	-- CB. Choose the value to match your film's processing/air
	-- exposure.

	local enabled = true
	local value = 6.7

	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
	--
	-- Note: conduction in MoOx is via an O-vacancy-derived defect band
	-- rather than a clean parabolic CB, 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

Effective valence-band density of states (material.Nv)

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

Electron mobility (material.mu_e)

function material.mu_e(state)
	-- Low-field electron mobility
	-- Units: m^2 V^-1 s^-1
	--
	-- Reference:
	-- Evaporated/amorphous molybdenum-oxide transport discussed in
	-- J. Meyer et al., Adv. Mater. 24, 5408, 2012.
	--
	-- Note: electron mobility is very low and extremely
	-- process-dependent, reported ~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 (approximate).
	-- Transport is trap/hopping limited, so no phonon (300/T)^n law is
	-- applied. Tune to your layer.

	local enabled = true
	local value = 1.0e-8

	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: MoOx extracts holes from the adjacent organic by electron
	-- transfer into its deep CB, NOT by hole conduction within MoOx,
	-- so intrinsic hole mobility is not the operative channel and is
	-- poorly constrained. Low placeholder.

	local enabled = true
	local value = 1.0e-9

	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:
	-- Molybdenum-oxide optical constants / anisotropy, J. Meyer et
	-- al., Adv. Mater. 24, 5408, 2012, and ellipsometry studies.
	--
	-- Note: layered, anisotropic and poorly constrained for reduced
	-- films. High-frequency epsilon_inf ~5.5; static value larger and
	-- axis-dependent. Representative (approximate) value used.

	local enabled = true
	local value = 5.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
	--
	-- Note: 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

Electron Auger recombination coefficient (material.auger_Cn)

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

Hole Auger recombination coefficient (material.auger_Cp)

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

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
	--
	-- Note: MoOx is deliberately oxygen-deficient, so its O-vacancy
	-- gap-state density is high (higher than stoichiometric MoO3) and
	-- very process-dependent. Placeholder; set from measurement.

	local enabled = true
	local value = 1.0e22

	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:
	-- Low, anisotropic values from the molybdenum-oxide
	-- thermal-transport literature (CRC Handbook; layered-oxide
	-- studies).
	--
	-- Note: layered/amorphous evaporated films have low thermal
	-- conductivity. A low representative value is used. Approximate.

	local enabled = true
	local value = 1.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:
	-- From alpha-MoO3 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). MoOx is similar. Approximate.

	local enabled = true
	local value = 520.0

	return value, enabled
end

Mass density (material.density)

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).
	--
	-- Note: reduced MoO3-x is denser than MoO3 and approaches MoO2
	-- (6.47 g/cm^3) as x increases. A near-MoO3 value is used for
	-- small x. Approximate.

	local enabled = true
	local value = 4700.0

	return value, enabled
end

Crystal lattice constant (material.lattice_constant)

function material.lattice_constant(state)
	-- Cubic lattice constant
	-- Units: m
	--
	-- DISABLED: evaporated MoOx device films are typically AMORPHOUS,
	-- and the crystalline host alpha-MoO3 is orthorhombic/layered, 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

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: Oxide family estimate
	-- Confidence: Low
	--
	-- Reference:
	-- https://doi.org/10.1109/16.381985
	--
	-- Comments:
	-- Transition-metal oxide often used as a hole-selective/contact layer.
	-- Carrier-specific energy-relaxation data are sparse.

	local enabled = true
	local value = 1.000000e-12

	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: Oxide family estimate
	-- Confidence: Low
	--
	-- Reference:
	-- https://doi.org/10.1109/16.381985
	--
	-- Comments:
	-- Transition-metal oxide often used as a hole-selective/contact layer.
	-- Carrier-specific energy-relaxation data are sparse.

	local enabled = true
	local value = 5.000000e-13

	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.
-- ============================================================================