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

CH3NH3PbBr3 material model

1. Introduction

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

Methylammonium lead tribromide (MAPbBr3), 3D hybrid perovskite (wide-gap absorber)

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


function material.description()
	local enabled = true

	return "Methylammonium lead tribromide (MAPbBr3), 3D hybrid perovskite (wide-gap absorber)", enabled
end


function material.formula()
	local enabled = true

	return "CH3NH3PbBr3", enabled
end


function material.Eg(state)
	-- Units: eV
	--
	-- Reference:
	-- M. A. Green, A. Ho-Baillie, H. J. Snaith, Nat. Photonics 8, 506,
	-- 2014; halide-perovskite optical literature.
	--
	-- Direct gap ~2.30 eV at 300 K (reported ~2.2-2.3 eV).
	--
	-- Note: like MAPbI3, MAPbBr3 has an ANOMALOUS POSITIVE dEg/dT
	-- (~+0.3 meV/K, opposite to Varshni). The linear term below is
	-- approximate. MAPbBr3 is cubic at room temperature (see
	-- lattice_constant).

	local enabled = true
	local T = state.T
	local value = 2.30 + 3.0e-4*(T - 300.0)

	return value, enabled
end


function material.Xi(state)
	-- Electron affinity
	-- Units: eV
	--
	-- Reference:
	-- Photoemission / device band-alignment literature for MAPbBr3.
	--
	-- Conduction-band minimum ~ -3.6 eV vs vacuum (electron affinity
	-- ~3.6 eV); with Eg ~2.3 eV the valence band is at ~ -5.9 eV. Both
	-- bands are shallower/deeper than MAPbI3 respectively. Reported
	-- values scatter ~0.2 eV. Approximate.

	local enabled = true
	local value = 3.6

	return value, enabled
end


function material.Nc(state)
	-- Effective conduction-band density of states
	-- Units: m^-3
	--
	-- Reference:
	-- From CB effective mass m_e* ~ 0.23 m0 (slightly heavier than the
	-- iodide): Nc(300 K) ~ 2.5e18 cm^-3 = 2.5e24 m^-3. Approximate.

	local enabled = true
	local T = state.T
	local value = 2.5e24*(T/300.0)^1.5

	return value, enabled
end


function material.Nv(state)
	-- Effective valence-band density of states
	-- Units: m^-3
	--
	-- Reference:
	-- From VB effective mass m_h* ~ 0.26 m0:
	-- Nv(300 K) ~ 3.0e18 cm^-3 = 3.0e24 m^-3. Approximate.

	local enabled = true
	local T = state.T
	local value = 3.0e24*(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:
	-- L. M. Herz, "Charge-Carrier Mobilities in Metal Halide
	-- Perovskites", Annu. Rev. Phys. Chem. 67, 65, 2016.
	--
	-- Single-crystal MAPbBr3 ~20-115 cm^2/V/s; device films lower. A
	-- representative 10 cm^2/V/s = 1e-3 m^2/V/s is used with a
	-- (300/T)^1.5 phonon form. Approximate; tune to film.

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

	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
	--
	-- Reference:
	-- L. M. Herz, Annu. Rev. Phys. Chem. 67, 65, 2016.
	--
	-- Comparable to the electron value (fairly ambipolar); 10
	-- cm^2/V/s = 1e-3 m^2/V/s with (300/T)^1.5. Approximate.

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

	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:
	-- Dielectric studies of MAPbBr3.
	--
	-- Frequency-dependent: high-frequency epsilon_inf ~4.7-5; the
	-- low-frequency value (ionic + MA dipole) rises to ~25-30. A
	-- low-frequency value ~25 is used for drift-diffusion; choose to
	-- match your timescale. Approximate.

	local enabled = true
	local value = 25.0

	return value, enabled
end


function material.free_to_free_recombination(state)
	-- Radiative (band-to-band) recombination coefficient
	-- Units: m^3 s^-1
	--
	-- Reference:
	-- L. M. Herz, Annu. Rev. Phys. Chem. 67, 65, 2016.
	--
	-- Bimolecular coefficient ~1e-10 cm^3/s = 1e-16 m^3/s. Direct-gap
	-- emitter (MAPbBr3 is a good green emitter). Approximate.

	local enabled = true
	local value = 1.0e-16

	return value, enabled
end


function material.auger_Cn(state)
	-- Electron Auger recombination coefficient
	-- Units: m^6 s^-1
	--
	-- Reference:
	-- L. M. Herz, Annu. Rev. Phys. Chem. 67, 65, 2016.
	-- ~1e-28 cm^6/s = 1e-40 m^6/s. Approximate.

	local enabled = true
	local value = 1.0e-40

	return value, enabled
end


function material.auger_Cp(state)
	-- Hole Auger recombination coefficient
	-- Units: m^6 s^-1
	--
	-- Reference:
	-- L. M. Herz, Annu. Rev. Phys. Chem. 67, 65, 2016.
	-- ~1e-28 cm^6/s = 1e-40 m^6/s. Approximate.

	local enabled = true
	local value = 1.0e-40

	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
	--
	-- Note: quality-dependent placeholder (~1e15 cm^-3 for good
	-- films); interfaces dominate real devices. Set from measurement.

	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:
	-- Ultralow lattice thermal conductivity of MAPbBr3, ~0.4-0.5
	-- W/m/K (strong anharmonicity, MA disorder).
	--
	-- A value of 0.5 W/m/K is used. Approximate.

	local enabled = true
	local value = 0.5

	return value, enabled
end


function material.heat_capacity(state)
	-- Specific heat capacity
	-- Units: J kg^-1 K^-1
	--
	-- Reference:
	-- Calorimetry of MAPbBr3, c_p(300 K) ~ 330 J/kg/K. Approximate.

	local enabled = true
	local value = 330.0

	return value, enabled
end


function material.density(state)
	-- Mass density
	-- Units: kg m^-3
	--
	-- Reference:
	-- C. C. Stoumpos, C. D. Malliakas, M. G. Kanatzidis, Inorg. Chem.
	-- 52, 9019, 2013. Cubic MAPbBr3 rho ~ 3.58 g/cm^3.

	local enabled = true
	local value = 3580.0

	return value, enabled
end


function material.lattice_constant(state)
	-- Cubic lattice constant
	-- Units: m
	--
	-- Reference:
	-- C. C. Stoumpos, C. D. Malliakas, M. G. Kanatzidis, Inorg. Chem.
	-- 52, 9019, 2013.
	--
	-- MAPbBr3 IS cubic (Pm-3m) at room temperature, so this is a
	-- genuine cubic lattice constant: a = 5.93 A at 300 K. (It
	-- transitions to tetragonal/orthorhombic only below ~236 K.)

	local enabled = true
	local value = 5.93e-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.
-- ============================================================================