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

Methylammonium lead chloride material model

1. Introduction

This page contains the OghmaNano material model for Methylammonium lead chloride (CH3NH3PbCl3).

Methylammonium lead chloride (CH3NH3PbCl3), pseudo-cubic phase; eight-band k.p parameters from Gawarecki et al., Phys. Rev. Applied 22, 014058 (2024).

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.
--
-- OghmaNano material file: CH3NH3PbCl3
-- Methylammonium lead chloride
--
-- Phase: Pseudo-cubic (approx C4v; exact point group C1) - the phase used by the k.p model.
-- Phase: MAPbCl3 is pseudo-cubic above ~178.8 K, so the pseudo-cubic phase IS the equilibrium phase at 300 K.
-- Phase: Approximate cubic symmetry arises from dynamical averaging of the MA cation.
--
-- The eight perovskite_* functions and material.Eg_qw
-- carry the eight-band k.p parameters from Table I of Gawarecki et al.,
-- Phys. Rev. Applied 22, 014058 (2024). Ordinary device properties
-- (Eg, Xi, mobilities, permittivity, recombination, thermal) come from
-- separate experimental sources cited inside each function. Numerical
-- k.p values were transcribed from the accepted manuscript
-- arXiv:2306.08643 v2; verify against the published APS PDF if possible.
--
-- Units are SI unless stated otherwise. P_parallel and Pz are kept in
-- eV*Angstrom exactly as published (they are NOT the Kane energy Ep).

local material = {}

Material name (material.name)

function material.name()
	local enabled = true

	return "Methylammonium lead chloride", enabled
end

Material description (material.description)

function material.description()
	local enabled = true

	return "Methylammonium lead chloride (CH3NH3PbCl3), pseudo-cubic phase; eight-band k.p parameters from Gawarecki et al., Phys. Rev. Applied 22, 014058 (2024).", enabled
end

Chemical formula (material.formula)

function material.formula()
	local enabled = true

	return "CH3NH3PbCl3", enabled
end

Band gap energy (material.Eg)

function material.Eg(state)
	-- Band gap (general device model)
	-- Units: eV
	--
	-- Single-crystal optical gap 2.88 eV (absorption edge 435 nm).
	-- Reference:
	-- G. Maculan et al., J. Phys. Chem. Lett. 6, 3781 (2015).
	-- DOI: 10.1021/acs.jpclett.5b01666
	-- Close to Gawarecki Table-I DFT gap (3.007 eV) but not equal;
	-- see material.Eg_qw for the exact Hamiltonian gap.

	local enabled = true
	local value = 2.88

	return value, enabled
end

Deformation potential Xi (material.Xi)

function material.Xi(state)
	-- Electron affinity (absolute conduction-band minimum vs vacuum)
	-- Units: eV
	--
	-- Electron affinity ~2.9 eV. From PESA VBM at -5.82 eV and optical
	-- gap 2.88 eV -> CBM ~ -2.94 eV.
	-- Reference:
	-- G. Maculan et al., J. Phys. Chem. Lett. 6, 3781 (2015).
	-- Surface/method dependent. Confidence: Low-Medium.

	local enabled = true
	local value = 2.9

	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
	--
	-- Nc = 2*(2*pi*m_e*kB*T/h^2)^(3/2).
	-- The conduction band of these perovskites is p-like; a single
	-- Table-I electron mass is not tabulated, so the electron mass is
	-- taken comparable to the valence-band mass m_v = 0.210 m0 from
	-- Table I of Gawarecki et al. (electron and hole masses are of the
	-- same order in lead halides). Value basis: family approximation.
	-- Confidence: Low-Medium. Nc(300 K) = 2.415e+24 m^-3.

	local enabled = true
	local T = state.T
	local value = 2.415e+24*(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
	--
	-- Nv = 2*(2*pi*m_h*kB*T/h^2)^(3/2), with the hole mass taken as the
	-- s-like valence-band effective mass m_v = 0.210 m0 from Table I of
	-- Gawarecki et al., Phys. Rev. Applied 22, 014058 (2024).
	-- Nv(300 K) = 2.415e+24 m^-3. Confidence: Medium (mass is paper-sourced).

	local enabled = true
	local T = state.T
	local value = 2.415e+24*(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
	--
	-- Wide-gap chloride; sparse transport data. Representative
	-- 5 cm^2/V/s = 5.0e-4 m^2/V/s.
	-- Value basis: MAPbX3 family estimate. Confidence: Low.
	-- (300/T)^1.5 phonon-limited form applied.
	-- Electron and hole mobilities taken equal (comparable in these
	-- materials).

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

	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
	--
	-- Wide-gap chloride; sparse transport data. Representative
	-- 5 cm^2/V/s = 5.0e-4 m^2/V/s.
	-- Value basis: MAPbX3 family estimate. Confidence: Low.
	-- (300/T)^1.5 phonon-limited form applied.
	-- Set equal to the electron mobility (comparable in these materials).

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

	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 permittivity for the electrostatic (drift-diffusion) model
	-- Dimensionless
	--
	-- High-frequency eps_inf = 4.0
	-- [S. Becker et al., Nature 553, 189 (2018), arXiv:1707.03071].
	-- Low-frequency (LO-phonon) static ~20-25; representative static
	-- 23 used for the electrostatic model. Confidence: Low-Medium.

	local enabled = true
	local value = 23.0

	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
	--
	-- Radiative coefficient. Family value ~1.0e-10 cm^3/s = 1.0e-16
	-- m^3/s [range 0.6e-10..14e-10 cm^3/s, L. M. Herz, Acc. Chem.
	-- Res. 49, 146 (2016)]. Confidence: Low (Cl-specific data scarce).
	-- Conversion: cm^3/s * 1e-6 = m^3/s.

	local enabled = true
	local value = 1.000e-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
	--
	-- Representative Auger coefficient ~1e-28 cm^6/s = 1.0e-40 m^6/s,
	-- anchored to MAPbI3 measurements and used across the family.
	-- Reference:
	-- L. M. Herz, Acc. Chem. Res. 49, 146 (2016).
	-- Conversion: cm^6/s * 1e-12 = m^6/s.
	-- Value basis: perovskite family estimate. Confidence: Low.

	local enabled = true
	local value = 1.0e-40

	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
	--
	-- Representative Auger coefficient ~1e-28 cm^6/s = 1.0e-40 m^6/s,
	-- anchored to MAPbI3 measurements and used across the family.
	-- Reference:
	-- L. M. Herz, Acc. Chem. Res. 49, 146 (2016).
	-- Conversion: cm^6/s * 1e-12 = m^6/s.
	-- Value basis: perovskite family estimate. Confidence: Low.

	local enabled = true
	local value = 1.0e-40

	return value, enabled
end

Interface trap energy (material.ss_srh_trap_energy)

function material.ss_srh_trap_energy(state)
	-- SRH trap energy relative to mid-gap
	-- Units: eV
	--
	-- Positive = towards the conduction band, negative = towards the
	-- valence band. Representative mid-gap value; sample dependent.

	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
	--
	-- Representative device-model value rather than an intrinsic material
	-- constant. Trap density is strongly processing dependent; set from a
	-- measured carrier lifetime for a given sample. Confidence: Low.

	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
	--
	-- Representative device-model value; sample dependent.

	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
	--
	-- Representative device-model value; sample dependent.

	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
	--
	-- Ultralow, ~0.3-0.5 W/m/K. Representative 0.40 W/m/K.

	local enabled = true
	local value = 0.4

	return value, enabled
end

Specific heat capacity (material.heat_capacity)

function material.heat_capacity(state)
	-- Specific heat capacity
	-- Units: J kg^-1 K^-1
	--
	-- Specific heat ~300-360 J/kg/K (organic cation contributes);
	-- representative 330. Confidence: Low.

	local enabled = true
	local value = 330.0

	return value, enabled
end

Mass density (material.density)

function material.density(state)
	-- Mass density
	-- Units: kg m^-3
	--
	-- Computed from the cubic/pseudo-cubic lattice constant and molar mass
	-- (Z = 1 formula unit per primitive cell), so it is phase-consistent
	-- with the k.p model:
	--   rho = M / (N_A * a^3)
	--   M     = 345.616 g/mol
	--   a     = 5.675 Angstrom (a_exp, Table I of Gawarecki et al. 2024)
	--   rho   = 3.1401 g/cm^3 = 3140.1 kg/m^3
	-- Confidence: Medium (crystallographic value for the idealised cell).

	local enabled = true
	local value = 3140.1

	return value, enabled
end

Crystal lattice constant (material.lattice_constant)

function material.lattice_constant(state)
	-- Cubic / pseudo-cubic lattice constant
	-- Units: m
	--
	-- Reference:
	-- K. Gawarecki, M. Wisniewski, M. Polak, R. Kudrawiec,
	-- and M. Gladysiewicz,
	-- "Eight-band k.p description and material gain for selected
	-- cubic and pseudocubic perovskites,"
	-- Physical Review Applied 22, 014058 (2024).
	-- DOI: 10.1103/PhysRevApplied.22.014058
	-- Table I.
	-- Source transcription: arXiv:2306.08643 v2 (accepted manuscript);
	-- spot-check against the paywalled APS PDF if a subscription is available.
	--
	-- a_exp = 5.675 Angstrom = 5.675e-10 m (experimental cubic/pseudo-cubic value
	-- listed in Table I). This is a genuine cubic/pseudo-cubic parameter,
	-- NOT an orthorhombic or tetragonal supercell dimension.

	local enabled = true
	local value = 5.675e-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: Perovskite family estimate
	-- Confidence: Low
	--
	-- No robust carrier-specific hydrodynamic value was found for this
	-- material; use 1 ps and perform a sensitivity analysis.

	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: Perovskite family estimate
	-- Confidence: Low
	--
	-- No robust carrier-specific hydrodynamic value was found for this
	-- material; use 1 ps and perform a sensitivity analysis.

	local enabled = true
	local value = 1.000000e-12

	return value, enabled
end

Band gap for quantum-well calculations (material.Eg_qw)

function material.Eg_qw(state)
	-- Band gap used by the eight-band k.p Hamiltonian (R point)
	-- Units: eV
	--
	-- Reference:
	-- K. Gawarecki, M. Wisniewski, M. Polak, R. Kudrawiec,
	-- and M. Gladysiewicz,
	-- "Eight-band k.p description and material gain for selected
	-- cubic and pseudocubic perovskites,"
	-- Physical Review Applied 22, 014058 (2024).
	-- DOI: 10.1103/PhysRevApplied.22.014058
	-- Table I.
	-- Source transcription: arXiv:2306.08643 v2 (accepted manuscript);
	-- spot-check against the paywalled APS PDF if a subscription is available.
	--
	-- This is the DFT gap the k.p parameters were fitted with. It differs
	-- from material.Eg() (an experimental room-temperature device value),
	-- so it is exposed separately to let the Hamiltonian exactly reproduce
	-- the parameterization in the paper. Table-I value: 3.007 eV.

	local enabled = true
	local value = 3.007

	return value, enabled
end

Perovskite conduction-band splitting parameter delta_c (material.perovskite_delta_c)

function material.perovskite_delta_c(state)
	-- Conduction-band spin-orbit splitting Delta_c
	-- Units: eV
	--
	-- Reference:
	-- K. Gawarecki, M. Wisniewski, M. Polak, R. Kudrawiec,
	-- and M. Gladysiewicz,
	-- "Eight-band k.p description and material gain for selected
	-- cubic and pseudocubic perovskites,"
	-- Physical Review Applied 22, 014058 (2024).
	-- DOI: 10.1103/PhysRevApplied.22.014058
	-- Table I.
	-- Source transcription: arXiv:2306.08643 v2 (accepted manuscript);
	-- spot-check against the paywalled APS PDF if a subscription is available.
	--
	-- This is a perovskite-specific conduction-band spin-orbit parameter
	-- (the CB is p-like). It is NOT interchangeable with a conventional
	-- III-V valence-band spin-orbit splitting delta_so.

	local enabled = true
	local value = 1.506

	return value, enabled
end

Perovskite band-structure splitting parameter delta (material.perovskite_delta)

function material.perovskite_delta(state)
	-- Non-cubic splitting parameter delta
	-- Units: eV
	--
	-- Reference:
	-- K. Gawarecki, M. Wisniewski, M. Polak, R. Kudrawiec,
	-- and M. Gladysiewicz,
	-- "Eight-band k.p description and material gain for selected
	-- cubic and pseudocubic perovskites,"
	-- Physical Review Applied 22, 014058 (2024).
	-- DOI: 10.1103/PhysRevApplied.22.014058
	-- Table I.
	-- Source transcription: arXiv:2306.08643 v2 (accepted manuscript);
	-- spot-check against the paywalled APS PDF if a subscription is available.
	--
	-- Splits the heavy/light electron block in C4v. In the cubic limit
	-- (CsPbX3, Oh symmetry) delta = 0 exactly; this zero is physically
	-- meaningful (enabled), not a missing value.

	local enabled = true
	local value = 0.045

	return value, enabled
end

Perovskite band-structure parameter zeta (material.perovskite_zeta)

function material.perovskite_zeta(state)
	-- Non-cubic / asymmetry coupling zeta
	-- Units: eV
	--
	-- Reference:
	-- K. Gawarecki, M. Wisniewski, M. Polak, R. Kudrawiec,
	-- and M. Gladysiewicz,
	-- "Eight-band k.p description and material gain for selected
	-- cubic and pseudocubic perovskites,"
	-- Physical Review Applied 22, 014058 (2024).
	-- DOI: 10.1103/PhysRevApplied.22.014058
	-- Table I.
	-- Source transcription: arXiv:2306.08643 v2 (accepted manuscript);
	-- spot-check against the paywalled APS PDF if a subscription is available.
	--
	-- Symmetry-breaking coupling <S_v|H0|Z_c> = i*zeta; drives the linear
	-- (Rashba-like) conduction-band splitting. In the cubic limit
	-- (CsPbX3) zeta = 0 exactly (enabled, physically meaningful).

	local enabled = true
	local value = 0.016

	return value, enabled
end

Perovskite in-plane momentum matrix element (material.perovskite_P_parallel)

function material.perovskite_P_parallel(state)
	-- Kane momentum coupling P_parallel
	-- Units: eV Angstrom
	--
	-- Reference:
	-- K. Gawarecki, M. Wisniewski, M. Polak, R. Kudrawiec,
	-- and M. Gladysiewicz,
	-- "Eight-band k.p description and material gain for selected
	-- cubic and pseudocubic perovskites,"
	-- Physical Review Applied 22, 014058 (2024).
	-- DOI: 10.1103/PhysRevApplied.22.014058
	-- Table I.
	-- Source transcription: arXiv:2306.08643 v2 (accepted manuscript);
	-- spot-check against the paywalled APS PDF if a subscription is available.
	--
	-- In-plane interband momentum matrix element
	-- P_parallel = (hbar/m0)<S_v|p_x|X_c> = (hbar/m0)<S_v|p_y|Y_c>.
	-- Kept in eV*Angstrom exactly as published; this is NOT the Kane
	-- energy Ep. For CsPbX3 (Oh) P_parallel = Pz.

	local enabled = true
	local value = 8.878

	return value, enabled
end

Perovskite out-of-plane momentum matrix element (material.perovskite_Pz)

function material.perovskite_Pz(state)
	-- Kane momentum coupling P_z
	-- Units: eV Angstrom
	--
	-- Reference:
	-- K. Gawarecki, M. Wisniewski, M. Polak, R. Kudrawiec,
	-- and M. Gladysiewicz,
	-- "Eight-band k.p description and material gain for selected
	-- cubic and pseudocubic perovskites,"
	-- Physical Review Applied 22, 014058 (2024).
	-- DOI: 10.1103/PhysRevApplied.22.014058
	-- Table I.
	-- Source transcription: arXiv:2306.08643 v2 (accepted manuscript);
	-- spot-check against the paywalled APS PDF if a subscription is available.
	--
	-- Out-of-plane interband momentum matrix element
	-- P_z = (hbar/m0)<S_v|p_z|Z_c>. Kept in eV*Angstrom exactly as
	-- published; NOT the Kane energy Ep. For CsPbX3 (Oh) Pz = P_parallel.

	local enabled = true
	local value = 9.896

	return value, enabled
end

Perovskite band parameter gamma1 prime (material.perovskite_gamma1_prime)

function material.perovskite_gamma1_prime(state)
	-- Modified Luttinger-like parameter gamma1' (primed)
	-- Units: dimensionless
	--
	-- Reference:
	-- K. Gawarecki, M. Wisniewski, M. Polak, R. Kudrawiec,
	-- and M. Gladysiewicz,
	-- "Eight-band k.p description and material gain for selected
	-- cubic and pseudocubic perovskites,"
	-- Physical Review Applied 22, 014058 (2024).
	-- DOI: 10.1103/PhysRevApplied.22.014058
	-- Table I.
	-- Source transcription: arXiv:2306.08643 v2 (accepted manuscript);
	-- spot-check against the paywalled APS PDF if a subscription is available.
	--
	-- PRIMED far-band parameter used directly in the Hamiltonian. Do NOT
	-- substitute the unprimed gamma1 (listed separately in Table I for
	-- reference only).

	local enabled = true
	local value = 1.581

	return value, enabled
end

Perovskite band parameter gamma2 prime (material.perovskite_gamma2_prime)

function material.perovskite_gamma2_prime(state)
	-- Modified Luttinger-like parameter gamma2' (primed)
	-- Units: dimensionless
	--
	-- Reference:
	-- K. Gawarecki, M. Wisniewski, M. Polak, R. Kudrawiec,
	-- and M. Gladysiewicz,
	-- "Eight-band k.p description and material gain for selected
	-- cubic and pseudocubic perovskites,"
	-- Physical Review Applied 22, 014058 (2024).
	-- DOI: 10.1103/PhysRevApplied.22.014058
	-- Table I.
	-- Source transcription: arXiv:2306.08643 v2 (accepted manuscript);
	-- spot-check against the paywalled APS PDF if a subscription is available.
	--
	-- PRIMED far-band parameter used directly in the Hamiltonian. Do NOT
	-- substitute the unprimed gamma2.

	local enabled = true
	local value = 0.14

	return value, enabled
end

Perovskite band parameter gamma3 prime (material.perovskite_gamma3_prime)

function material.perovskite_gamma3_prime(state)
	-- Modified Luttinger-like parameter gamma3' (primed)
	-- Units: dimensionless
	--
	-- Reference:
	-- K. Gawarecki, M. Wisniewski, M. Polak, R. Kudrawiec,
	-- and M. Gladysiewicz,
	-- "Eight-band k.p description and material gain for selected
	-- cubic and pseudocubic perovskites,"
	-- Physical Review Applied 22, 014058 (2024).
	-- DOI: 10.1103/PhysRevApplied.22.014058
	-- Table I.
	-- Source transcription: arXiv:2306.08643 v2 (accepted manuscript);
	-- spot-check against the paywalled APS PDF if a subscription is available.
	--
	-- PRIMED far-band parameter used directly in the Hamiltonian. Do NOT
	-- substitute the unprimed gamma3. Sign is negative for all six
	-- materials and is preserved exactly as published.

	local enabled = true
	local value = -0.599

	return value, enabled
end

Longitudinal optical phonon energy (material.phonon_lo_energy)

function material.phonon_lo_energy(state)
	-- Longitudinal optical phonon energy
	-- Units: eV
	--
	-- MAPbCl3 has multiple LO phonon branches. The upper Pb-Cl
	-- stretching LO branch at 225 cm^-1 corresponds to approximately
	-- 27.9 meV and is used here as the single-mode approximation.
	--
	-- Reference:
	-- M. Sendner et al.,
	-- "Optical phonons in methylammonium lead halide perovskites
	-- and implications for charge transport,"
	-- Materials Horizons 3, 613-620 (2016).
	-- DOI: 10.1039/C6MH00275G

	local enabled = true
	local value = 0.0279

	return value, enabled
end

Static dielectric constant (material.epsilon_static)

function material.epsilon_static(state)
	-- Static dielectric constant used for polar optical phonon scattering
	-- Dimensionless
	--
	-- Far-infrared dielectric-function analysis gives epsilon_static = 29.8.
	--
	-- Reference:
	-- M. Sendner et al.,
	-- "Optical phonons in methylammonium lead halide perovskites
	-- and implications for charge transport,"
	-- Materials Horizons 3, 613-620 (2016).
	-- DOI: 10.1039/C6MH00275G

	local enabled = true
	local value = 29.8

	return value, enabled
end

High-frequency dielectric constant (material.epsilon_inf)

function material.epsilon_inf(state)
	-- High-frequency dielectric constant used for polar optical phonon scattering
	-- Dimensionless
	--
	-- Far-infrared dielectric-function analysis gives epsilon_inf = 4.0.
	--
	-- Reference:
	-- M. Sendner et al.,
	-- "Optical phonons in methylammonium lead halide perovskites
	-- and implications for charge transport,"
	-- Materials Horizons 3, 613-620 (2016).
	-- DOI: 10.1039/C6MH00275G

	local enabled = true
	local value = 4.0

	return value, enabled
end

Elastic stiffness constant C11 (material.C11)

function material.C11(state)
    -- Elastic stiffness constant C11
    -- Units: Pa
    --
    -- Crystal phase: cubic MAPbCl3 at room temperature.
    --
    -- Reference:
    -- J. W. Lee, F. H. Naqvi, J.-H. Ko, T. H. Kim, C. W. Ahn,
    -- "Acoustic anomalies and the critical slowing-down behavior of MAPbCl3
    -- single crystals studied by Brillouin light scattering,"
    -- Materials 15, 3692 (2022).
    -- DOI: 10.3390/ma15103692
    --
    -- Notes:
    -- Brillouin, [100] LA mode, RT: 41.0 GPa (density 3171 kg/m^3).

    local enabled = true
    local value = 41.0e9

    return value, enabled
end

Elastic stiffness constant C12 (material.C12)

function material.C12(state)
    -- Elastic stiffness constant C12
    -- Units: Pa
    --
    -- Derived from two measurements on cubic MAPbCl3:
    -- C11 = 41.0 GPa:
    -- J. W. Lee, F. H. Naqvi, J.-H. Ko, T. H. Kim, C. W. Ahn,
    -- "Acoustic anomalies and the critical slowing-down behavior of MAPbCl3
    -- single crystals studied by Brillouin light scattering,"
    -- Materials 15, 3692 (2022).
    -- DOI: 10.3390/ma15103692
    -- (C11 - C12)/2 = 10.8 GPa (neutron TA2):
    -- M. Songvilay et al., Phys. Rev. Materials 2, 123601 (2018)
    -- (inelastic neutron scattering, cubic MAPbCl3).
    -- DOI: 10.1103/PhysRevMaterials.2.123601
    -- Value as tabulated in Songvilay et al., Phys. Rev. Materials 3,
    -- 093602 (2019), Table 1. DOI: 10.1103/PhysRevMaterials.3.093602
    --
    -- Notes:
    -- C12 = C11 - 2*10.8 = 19.4 GPa. Combines Brillouin (GHz) and neutron
    -- (THz) data; their C44 values differ by ~20% (3.74 vs 3.00 GPa), so
    -- C12 carries roughly +/- 3 GPa uncertainty.

    local enabled = true
    local value = 19.4e9

    return value, enabled
end

Elastic stiffness constant C44 (material.C44)

function material.C44(state)
    -- Elastic stiffness constant C44
    -- Units: Pa
    --
    -- Reference:
    -- J. W. Lee, F. H. Naqvi, J.-H. Ko, T. H. Kim, C. W. Ahn,
    -- "Acoustic anomalies and the critical slowing-down behavior of MAPbCl3
    -- single crystals studied by Brillouin light scattering,"
    -- Materials 15, 3692 (2022).
    -- DOI: 10.3390/ma15103692
    --
    -- Notes:
    -- Brillouin, [100] TA mode, RT: 3.74 GPa (neutron: 3.00 GPa,
    -- Songvilay et al. 2018).

    local enabled = true
    local value = 3.74e9

    return value, enabled
end

Electron acoustic deformation potential (material.D_ac_e)

function material.D_ac_e(state)
    -- Effective scalar acoustic deformation potential for electrons
    -- Units: eV
    --
    -- No sufficiently reliable value/reference identified.
    -- Disabled rather than estimated.
    --
    -- Notes:
    -- Targeted search (coherent-acoustic-phonon / picosecond-ultrasonics
    -- experiments, temperature-dependent mobility fits, first-principles
    -- deformation-potential and electron-phonon studies, band-edge strain
    -- studies) found no defensible, separately-resolved scalar acoustic
    -- deformation potential for electrons and holes in this compound.
    -- Mobility-fit analyses of halide perovskites (e.g. the review by
    -- L. M. Herz, ACS Energy Lett. 2, 1539 (2017), DOI 10.1021/
    -- acsenergylett.7b00276) conclude that acoustic deformation-potential
    -- scattering is weak compared with Frohlich scattering but give no
    -- compound-specific D_ac. Band-gap deformation potentials (dEg/dlnV) and
    -- optical/Frohlich coupling constants are not substitutes. The only
    -- experimental separation of electron and hole values found is for
    -- MAPbI3 (Mante et al., Nat. Commun. 8, 14398 (2017)); transferring it to
    -- other halides or cations is not justified.

    local enabled = false
    local value = 0.0

    return value, enabled
end

Hole acoustic deformation potential (material.D_ac_h)

function material.D_ac_h(state)
    -- Effective scalar acoustic deformation potential for holes
    -- Units: eV
    --
    -- No sufficiently reliable value/reference identified.
    -- Disabled rather than estimated.
    --
    -- Notes:
    -- Targeted search (coherent-acoustic-phonon / picosecond-ultrasonics
    -- experiments, temperature-dependent mobility fits, first-principles
    -- deformation-potential and electron-phonon studies, band-edge strain
    -- studies) found no defensible, separately-resolved scalar acoustic
    -- deformation potential for electrons and holes in this compound.
    -- Mobility-fit analyses of halide perovskites (e.g. the review by
    -- L. M. Herz, ACS Energy Lett. 2, 1539 (2017), DOI 10.1021/
    -- acsenergylett.7b00276) conclude that acoustic deformation-potential
    -- scattering is weak compared with Frohlich scattering but give no
    -- compound-specific D_ac. Band-gap deformation potentials (dEg/dlnV) and
    -- optical/Frohlich coupling constants are not substitutes. The only
    -- experimental separation of electron and hole values found is for
    -- MAPbI3 (Mante et al., Nat. Commun. 8, 14398 (2017)); transferring it to
    -- other halides or cations is not justified.

    local enabled = false
    local value = 0.0

    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)))
	print(string.format("Lattice constant:       %.6e m", material.lattice_constant(state)))

	print(string.format("kp Eg (Hamiltonian):    %.6f eV", material.Eg_qw(state)))
	print(string.format("kp Delta_c:             %.6f eV", material.perovskite_delta_c(state)))
	print(string.format("kp delta:               %.6f eV", material.perovskite_delta(state)))
	print(string.format("kp zeta:                %.6f eV", material.perovskite_zeta(state)))
	print(string.format("kp P_parallel:           %.6f eV A", material.perovskite_P_parallel(state)))
	print(string.format("kp Pz:                   %.6f eV A", material.perovskite_Pz(state)))
	print(string.format("kp gamma1 prime:         %.6f", material.perovskite_gamma1_prime(state)))
	print(string.format("kp gamma2 prime:         %.6f", material.perovskite_gamma2_prime(state)))
	print(string.format("kp gamma3 prime:         %.6f", material.perovskite_gamma3_prime(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.
-- ============================================================================