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

InN material model

1. Introduction

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

Bulk crystalline indium nitride (wurtzite)

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

Material description (material.description)

function material.description()
	local enabled = true

	return "Bulk crystalline indium nitride (wurtzite)", enabled
end

Chemical formula (material.formula)

function material.formula()
	local enabled = true

	return "InN", enabled
end

Band gap energy (material.Eg)

function material.Eg(state)
	-- Units: eV
	--
	-- Reference:
	-- Y. P. Varshni,
	-- "Temperature dependence of the energy gap in semiconductors",
	-- Physica, 34, 149-154, 1967.
	--
	-- Wurtzite InN parameter set (Eg(0) = 0.69 eV,
	-- alpha = 4.14e-4 eV/K, beta = 454 K), consistent with the
	-- post-2002 revised narrow gap; see
	-- I. Vurgaftman and J. R. Meyer, "Band parameters for nitrogen-
	-- containing semiconductors", J. Appl. Phys. 94, 3675-3696, 2003,
	-- and J. Wu et al., Appl. Phys. Lett. 80, 3967, 2002.
	-- Gives Eg(300 K) = 0.64 eV. Direct, narrow gap.
	--
	-- IMPORTANT: InN was long believed to have a ~1.9 eV gap; that
	-- value (still found in older tables, incl. Vurgaftman 2001) is
	-- now known to be wrong. The true gap is ~0.64-0.7 eV, with some
	-- residual spread between reports.

	local enabled = true
	local T = state.T
	local value = 0.69 - 4.14e-4*T*T/(T + 454.0)

	return value, enabled
end

Deformation potential Xi (material.Xi)

function material.Xi(state)
	-- Electron affinity
	-- Units: eV
	--
	-- Reference:
	-- Device literature.
	--
	-- InN has an exceptionally large electron affinity (~5.8 eV, among
	-- the largest of any semiconductor). This places the charge
	-- neutrality level above the conduction-band minimum, causing
	-- strong surface/interface electron accumulation and unintentional
	-- n-type behaviour. Value is uncertain; ~5.8 eV used here.

	local enabled = true
	local value = 5.8

	return value, enabled
end

Electron effective mass (material.me)

function material.me(state)
    local enabled = true
    local value = 0.07    -- wurtzite (Vurgaftman 2003; some newer data ~0.05)
    return value, enabled
end

Hole effective mass (material.mh)

function material.mh(state)
    local enabled = true
    -- HH along c: -1/(A1+A3), A1=-8.21 A3=7.57 (Vurgaftman 2003)
    local value = 1.6
    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 the small electron effective mass m_e* ~ 0.07 m0 (InN).
	-- Nc(300 K) ~ 4.6e17 cm^-3 = 4.6e23 m^-3.
	--
	-- Note: Nc is small because of the light electron mass. As with
	-- other narrow-gap materials, conduction-band non-parabolicity is
	-- significant and not captured by the (T/300)^1.5 form.

	local enabled = true
	local T = state.T
	local value = 4.6e23*(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 the wurtzite InN hole density-of-states mass.
	-- Nv(300 K) ~ 5.1e19 cm^-3 = 5.1e25 m^-3.

	local enabled = true
	local T = state.T
	local value = 5.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:
	-- Best-reported bulk / thick-film InN.
	-- mu_n(300 K) ~ 3200 cm^2/V/s = 0.32 m^2/V/s, phonon-limited
	-- temperature dependence approximately (300/T)^1.5.
	--
	-- Note: high because of the light electron mass. Intrinsic /
	-- best-case value; real InN is degenerately n-type with strong
	-- surface accumulation, so extracted mobilities vary widely.

	local enabled = true
	local T = state.T
	local value = 0.32*(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
	--
	-- Reference:
	-- Estimated; InN hole transport is very poorly characterised.
	-- mu_p(300 K) ~ 50 cm^2/V/s = 0.005 m^2/V/s (order of magnitude),
	-- temperature dependence approximately (300/T)^2.0.
	--
	-- IMPORTANT: p-type InN is extremely difficult to demonstrate
	-- because the surface electron accumulation layer masks bulk
	-- p-type conduction. Treat this value as a placeholder only.

	local enabled = true
	local T = state.T
	local value = 0.005*(300.0/T)^2.0

	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:
	-- Ioffe NSM database (InN).
	-- Static value ~15.3 (high-frequency value ~8.4).
	--
	-- Note: wurtzite InN is anisotropic about the c-axis; a
	-- representative value is used.

	local enabled = true
	local value = 15.3

	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 value for a direct-gap nitride,
	-- ~2e-11 cm^3/s = 2e-17 m^3/s.
	--
	-- InN is direct-gap, so B is significant, but it is poorly
	-- characterised. Adjust by hand to match your material / device.

	local enabled = true
	local value = 2.0e-17

	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
	--
	-- Reference:
	-- Representative placeholder, ~1e-30 cm^6/s = 1e-42 m^6/s.
	--
	-- Note: with its narrow (~0.64 eV) gap, InN is expected to have
	-- significant, temperature-dependent Auger recombination
	-- (stronger than the wide-gap nitrides, weaker than InAs), but it
	-- is poorly measured. Adjust by hand.

	local enabled = true
	local value = 1.0e-42

	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
	--
	-- Reference:
	-- Representative placeholder, ~1e-30 cm^6/s = 1e-42 m^6/s.
	--
	-- Note: see auger_Cn. Poorly measured; adjust by hand.

	local enabled = true
	local value = 1.0e-42

	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
	--
	-- This is entirely material-quality dependent and should be set
	-- from the intended bulk lifetime. The value below is a
	-- representative placeholder for device-grade material.
	--
	-- Note: real InN has high background electron density and
	-- dislocation/point-defect densities that dominate the effective
	-- SRH lifetime; set from your material.

	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 value ~1e-15 cm^2 = 1e-19 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
	--
	-- Representative value ~1e-15 cm^2 = 1e-19 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:
	-- Ioffe NSM database (InN).
	-- kappa(300 K) ~ 45 W/m/K; near room temperature kappa decreases
	-- with T with an effective exponent of about -1.4.
	--
	-- Note: quality dependent; measured thin-film values scatter.

	local enabled = true
	local T = state.T
	local value = 45.0*(300.0/T)^1.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
	--
	-- Reference:
	-- Ioffe NSM database (InN). c_p(300 K) ~ 320 J/kg/K.

	local enabled = true
	local value = 320.0

	return value, enabled
end

Mass density (material.density)

function material.density(state)
	-- Mass density
	-- Units: kg m^-3
	--
	-- Reference:
	-- Ioffe NSM database (InN). rho = 6.81 g/cm^3.

	local enabled = true
	local value = 6810.0

	return value, enabled
end

Crystal lattice constant (material.lattice_constant)

function material.lattice_constant(state)
	-- Lattice constant (hexagonal a-axis)
	-- Units: m
	--
	-- Reference:
	-- I. Vurgaftman and J. R. Meyer, "Band parameters for nitrogen-
	-- containing semiconductors", J. Appl. Phys. 94, 3675-3696, 2003;
	-- Ioffe NSM database.
	-- a(300 K) = 3.545 A; linear expansion ~3.6e-6 /K near 300 K.
	--
	-- IMPORTANT: wurtzite InN is hexagonal, with two lattice
	-- constants a = 3.545 A and c = 5.703 A. This single scalar field
	-- holds the a-axis constant only; the c-axis constant is not
	-- representable here.
	--
	-- Note: like the other wurtzite nitrides, InN has large
	-- spontaneous and piezoelectric polarization, important in
	-- InGaN device layers but not captured by any scalar here.

	local enabled = true
	local T = state.T
	local a300 = 3.545e-10
	local expansion = 3.6e-6
	local value = a300*(1.0 + expansion*(T - 300.0))

	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: Hydrodynamic literature/family value
	-- Confidence: Medium
	--
	-- Reference:
	-- https://doi.org/10.1063/1.1383260
	--
	-- Comments:
	-- 0.2 ps is a commonly used GaN/AlGaN hydrodynamic energy-relaxation value;
	-- extended to related nitrides.

	local enabled = true
	local value = 2.000000e-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: Hydrodynamic literature/family value
	-- Confidence: Medium
	--
	-- Reference:
	-- https://doi.org/10.1063/1.1383260
	--
	-- Comments:
	-- 0.2 ps is a commonly used GaN/AlGaN hydrodynamic energy-relaxation value;
	-- extended to related nitrides.

	local enabled = true
	local value = 2.000000e-13

	return value, enabled
end


-- InN (wurtzite). Dispersion + S1/S2 enabled (Rinke 2008 fit; needed
-- because LDA six-band fits are unphysical for InN's tiny gap).
-- Deformation potentials DISABLED: see the qw_D1 note - only the
-- gap-combinations and D3,D4,D5 are established (Yan 2009), not the
-- separate D1,D2,D6 that OghmaNano's strain block needs.

Wurtzite crystal-field splitting delta1 (material.qw_delta1)

function material.qw_delta1(state)
-- Crystal-field splitting delta1 (= Delta_CR). Units: eV.
-- Value: Rinke 2008 OEPx+G0W0, used for BOTH the band ordering
-- and the S1/S2 conduction denominators so the set stays self-
-- consistent. (Vurgaftman-Meyer 2003 give a different Delta_CR;
-- see notes.) VM2003 value for cross-check: 0.040 eV.
--
-- P. Rinke, M. Winkelnkemper, A. Qteish, D. Bimberg, J. Neugebauer,
-- and M. Scheffler, "Consistent set of band parameters for the
--  group-III nitrides AlN, GaN, and InN," Physical Review B 77,
--  075202 (2008). DOI: 10.1103/PhysRevB.77.075202
	local enabled = true
	local value = 0.066
	return value, enabled
end

Wurtzite spin–orbit splitting delta2 (material.qw_delta2)

function material.qw_delta2(state)
-- Spin-orbit parameter delta2 = Dso/3 (quasi-cubic). Units: eV.
-- Dso(InN) = 0.005 eV -> delta2 = 0.0017 eV.
--
-- I. Vurgaftman and J. R. Meyer, "Band parameters for nitrogen-
--  containing semiconductors," Journal of Applied Physics 94,
--  3675-3696 (2003). DOI: 10.1063/1.1600519
	local enabled = true
	local Dso = 0.005
	local value = Dso/3.0
	return value, enabled
end

Wurtzite spin–orbit splitting delta3 (material.qw_delta3)

function material.qw_delta3(state)
-- Spin-orbit parameter delta3 = Dso/3 (quasi-cubic). Units: eV.
--
-- I. Vurgaftman and J. R. Meyer, "Band parameters for nitrogen-
--  containing semiconductors," Journal of Applied Physics 94,
--  3675-3696 (2003). DOI: 10.1063/1.1600519
	local enabled = true
	local Dso = 0.005
	local value = Dso/3.0
	return value, enabled
end

Wurtzite valence-band parameter A1 (material.qw_A1)

function material.qw_A1(state)
-- Wurtzite valence-band k.p parameter A1. Dimensionless.
--
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
	local enabled = true
	local value = -15.803
	return value, enabled
end

Wurtzite valence-band parameter A2 (material.qw_A2)

function material.qw_A2(state)
-- Wurtzite valence-band k.p parameter A2. Dimensionless.
--
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
	local enabled = true
	local value = -0.497
	return value, enabled
end

Wurtzite valence-band parameter A3 (material.qw_A3)

function material.qw_A3(state)
-- Wurtzite valence-band k.p parameter A3. Dimensionless.
--
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
	local enabled = true
	local value = 15.251
	return value, enabled
end

Wurtzite valence-band parameter A4 (material.qw_A4)

function material.qw_A4(state)
-- Wurtzite valence-band k.p parameter A4. Dimensionless.
--
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
	local enabled = true
	local value = -7.151
	return value, enabled
end

Wurtzite valence-band parameter A5 (material.qw_A5)

function material.qw_A5(state)
-- Wurtzite valence-band k.p parameter A5. Dimensionless.
--
-- Sign physical (enters N1=2 A5, M1 -A5). Not |A5|.
--
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
	local enabled = true
	local value = -7.06
	return value, enabled
end

Wurtzite valence-band parameter A6 (material.qw_A6)

function material.qw_A6(state)
-- Wurtzite valence-band k.p parameter A6. Dimensionless.
--
-- Sign physical (enters N2=sqrt(2) A6). Not |A6|.
--
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
	local enabled = true
	local value = -10.078
	return value, enabled
end

Wurtzite interband coupling energy Ep1 (material.qw_Ep1)

function material.qw_Ep1(state)
-- Kane energy || c. Units: eV. (InN Ep is tied to its very small
-- gap; reliable only within the cited k.p fit.)
--
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
	local enabled = true
	local value = 8.742
	return value, enabled
end

Wurtzite interband coupling energy Ep2 (material.qw_Ep2)

function material.qw_Ep2(state)
-- Kane energy perp c. Units: eV.
--
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
	local enabled = true
	local value = 8.809
	return value, enabled
end

Quantum-well band-structure parameter S1 (material.qw_S1)

function material.qw_S1(state)
-- Conduction remote+free-electron parameter || c.
-- The OghmaNano conduction diagonal carries NO separate free-electron
-- term, so S folds in the free-electron 1 and the remote bands, while
-- the Kane coupling is explicit. Setting the total kz^2 (kx^2) curvature
-- equal to hbar^2/(2 m_par) (hbar^2/(2 m_perp)) gives, to 2nd order:
--   S1 = m0/m_par  - Ep1/(Egtilde + delta1)
--   S2 = m0/m_perp - Ep2/(Egtilde)
-- with Egtilde = Eg (delta1>0) or Eg+|delta1| (delta1<0). The
-- denominators are the exact conduction<->Z and conduction<->X,Y
-- separations of the Kane block (Rinke 2008 Eq. A2), so by construction
-- the full 8-band Hamiltonian reproduces the source electron masses.
-- InN: m_par=0.065, Ep1=8.742, Eg=0.69, delta1=0.066 => denominator
--   Egtilde+delta1 = 0.756 ; S1 = 1/0.065 - 8.742/0.756 = 3.8211 .
-- CAUTION: with Eg~0.7 eV, S1 is a small difference of large numbers
-- (15.4 vs 11.6); it is sensitive to the exact denominator. Using a
-- plain-Eg denominator instead gives S1~2.72. Confirm which the
-- solver's Kane block produces if InN accuracy is critical.
--
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
	local m   = 0.065
	local Eg  = 0.69
	local d1  = 0.066
	local Ep1 = 8.742
	local Egt = Eg
	if d1 < 0.0 then Egt = Eg - d1 end   -- Egtilde = Eg + |d1|
	local enabled = true
	local value = 1.0/m - Ep1/(Egt + d1)
	return value, enabled
end

Quantum-well band-structure parameter S2 (material.qw_S2)

function material.qw_S2(state)
-- Conduction remote+free-electron parameter perp c. See qw_S1.
-- InN: S2 = 1/0.068 - 8.809/0.69 = 1.9392 (same sensitivity caveat).
--
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
	local m   = 0.068
	local Eg  = 0.69
	local d1  = 0.066
	local Ep2 = 8.809
	local Egt = Eg
	if d1 < 0.0 then Egt = Eg - d1 end   -- Egtilde = Eg + |d1|
	local enabled = true
	local value = 1.0/m - Ep2/Egt
	return value, enabled
end

Quantum-well parameter a1 (material.qw_a1)

function material.qw_a1(state)
-- Conduction-band deformation potential || c. Units: eV.
-- enabled=false. A complete, internally consistent conduction+valence
-- deformation set for wurtzite InN could not be established. Yan 2009
-- (HSE) give only the gap COMBINATIONS acz-D1 = -3.62 and act-D2 =
-- -4.60 eV, plus D3=2.68, D4=-1.74, D5=-2.07 eV - not the separate
-- D1,D2 (or D6) that OghmaNano's strain block and the az=a1+D1
-- reconstruction require. VM2003's advice to reuse the GaN values is
-- explicitly shown by Yan 2009 to be a poor approximation for InN, and
-- InN's six-band valence deformation potentials are widely flagged as
-- "formal" (no clear physical meaning) because of the tiny gap.
-- Returns 0.0 (neutral), not a guess.
--
-- Q. Yan, P. Rinke, M. Scheffler, and C. G. Van de Walle, "Strain
--  effects in group-III nitrides: Deformation potentials for AlN,
--  GaN, and InN," Applied Physics Letters 95, 121111 (2009).
--  DOI: 10.1063/1.3236533
--
-- I. Vurgaftman and J. R. Meyer, "Band parameters for nitrogen-
--  containing semiconductors," Journal of Applied Physics 94,
--  3675-3696 (2003). DOI: 10.1063/1.1600519
	local enabled = false
	local value = 0.0
	return value, enabled
end

Quantum-well parameter a2 (material.qw_a2)

function material.qw_a2(state)
-- Conduction-band deformation potential perp c. Units: eV.
-- enabled=false: see qw_a1 (InN).
-- Q. Yan, P. Rinke, M. Scheffler, and C. G. Van de Walle, "Strain
--  effects in group-III nitrides: Deformation potentials for AlN,
--  GaN, and InN," Applied Physics Letters 95, 121111 (2009).
--  DOI: 10.1063/1.3236533
--
-- I. Vurgaftman and J. R. Meyer, "Band parameters for nitrogen-
--  containing semiconductors," Journal of Applied Physics 94,
--  3675-3696 (2003). DOI: 10.1063/1.1600519
	local enabled = false
	local value = 0.0
	return value, enabled
end

Wurtzite deformation potential D1 (material.qw_D1)

function material.qw_D1(state)
-- Valence-band deformation potential D1. Units: eV.
-- enabled=false. A complete, internally consistent conduction+valence
-- deformation set for wurtzite InN could not be established. Yan 2009
-- (HSE) give only the gap COMBINATIONS acz-D1 = -3.62 and act-D2 =
-- -4.60 eV, plus D3=2.68, D4=-1.74, D5=-2.07 eV - not the separate
-- D1,D2 (or D6) that OghmaNano's strain block and the az=a1+D1
-- reconstruction require. VM2003's advice to reuse the GaN values is
-- explicitly shown by Yan 2009 to be a poor approximation for InN, and
-- InN's six-band valence deformation potentials are widely flagged as
-- "formal" (no clear physical meaning) because of the tiny gap.
-- Returns 0.0 (neutral), not a guess.
--
-- Q. Yan, P. Rinke, M. Scheffler, and C. G. Van de Walle, "Strain
--  effects in group-III nitrides: Deformation potentials for AlN,
--  GaN, and InN," Applied Physics Letters 95, 121111 (2009).
--  DOI: 10.1063/1.3236533
--
-- I. Vurgaftman and J. R. Meyer, "Band parameters for nitrogen-
--  containing semiconductors," Journal of Applied Physics 94,
--  3675-3696 (2003). DOI: 10.1063/1.1600519
	local enabled = false
	local value = 0.0
	return value, enabled
end

Wurtzite deformation potential D2 (material.qw_D2)

function material.qw_D2(state)
-- Valence-band deformation potential D2. Units: eV.
-- enabled=false: see qw_D1 (InN).
	local enabled = false
	local value = 0.0
	return value, enabled
end

Wurtzite deformation potential D3 (material.qw_D3)

function material.qw_D3(state)
-- Valence-band deformation potential D3. Units: eV.
-- enabled=false: see qw_D1 (InN).
	local enabled = false
	local value = 0.0
	return value, enabled
end

Wurtzite deformation potential D4 (material.qw_D4)

function material.qw_D4(state)
-- Valence-band deformation potential D4. Units: eV.
-- enabled=false: see qw_D1 (InN).
	local enabled = false
	local value = 0.0
	return value, enabled
end

Wurtzite deformation potential D5 (material.qw_D5)

function material.qw_D5(state)
-- Valence-band deformation potential D5. Units: eV.
-- enabled=false: see qw_D1 (InN).
	local enabled = false
	local value = 0.0
	return value, enabled
end

Wurtzite deformation potential D6 (material.qw_D6)

function material.qw_D6(state)
-- Valence-band deformation potential D6. Units: eV.
-- enabled=false: see qw_D1 (InN).
	local enabled = false
	local value = 0.0
	return value, enabled
end

Quantum-well elastic stiffness constant C13 (material.qw_C13)

function material.qw_C13(state)
-- Elastic stiffness constant C13. Units: Pa.
--
-- Reference:
-- A. F. Wright, "Elastic properties of zinc-blende and wurtzite
--  AlN, GaN, and InN," Journal of Applied Physics 82, 2833-2839
--  (1997). DOI: 10.1063/1.366114
-- Adopted as recommended value in:
-- I. Vurgaftman and J. R. Meyer, Journal of Applied Physics 94,
--  3675-3696 (2003). DOI: 10.1063/1.1600519
	local value = 92.0e9
	local enabled = true
	return value, enabled
end

Quantum-well elastic stiffness constant C33 (material.qw_C33)

function material.qw_C33(state)
-- Elastic stiffness constant C33. Units: Pa.
--
-- Reference:
-- A. F. Wright, "Elastic properties of zinc-blende and wurtzite
--  AlN, GaN, and InN," Journal of Applied Physics 82, 2833-2839
--  (1997). DOI: 10.1063/1.366114
-- Adopted as recommended value in:
-- I. Vurgaftman and J. R. Meyer, Journal of Applied Physics 94,
--  3675-3696 (2003). DOI: 10.1063/1.1600519
	local value = 224.0e9
	local enabled = true
	return value, enabled
end

Spontaneous polarisation (material.qw_Psp)

function material.qw_Psp(state)
-- Spontaneous polarization Psp. Units: C/m^2.
--
-- Reference:
-- F. Bernardini, V. Fiorentini, and D. Vanderbilt, "Spontaneous
--  polarization and piezoelectric constants of III-V nitrides,"
--  Physical Review B 56, R10024-R10027 (1997).
--  DOI: 10.1103/PhysRevB.56.R10024
-- Convention: effective Psp with zinc-blende reference, c-axis
--  wurtzite formulation Ptotal = Psp + 2*e31*exx + e33*ezz.
	local value = -0.032
	local enabled = true
	return value, enabled
end

Piezoelectric coefficient e31 (material.e31)

function material.e31(state)
-- Piezoelectric coefficient e31. Units: C/m^2.
--
-- Reference:
-- F. Bernardini, V. Fiorentini, and D. Vanderbilt, "Spontaneous
--  polarization and piezoelectric constants of III-V nitrides,"
--  Physical Review B 56, R10024-R10027 (1997).
--  DOI: 10.1103/PhysRevB.56.R10024
	local value = -0.57
	local enabled = true
	return value, enabled
end

Piezoelectric coefficient e33 (material.e33)

function material.e33(state)
-- Piezoelectric coefficient e33. Units: C/m^2.
--
-- Reference:
-- F. Bernardini, V. Fiorentini, and D. Vanderbilt, "Spontaneous
--  polarization and piezoelectric constants of III-V nitrides,"
--  Physical Review B 56, R10024-R10027 (1997).
--  DOI: 10.1103/PhysRevB.56.R10024
	local value = 0.97
	local enabled = true
	return value, enabled
end

Lattice constant a (material.lattice_a)

function material.lattice_a(state)
	-- Lattice constant, a-axis
	-- Units: m
	--
	-- Reference:
	-- I. Vurgaftman and J. R. Meyer,
	-- "Band parameters for nitrogen-containing semiconductors,"
	-- J. Appl. Phys. 94, 3675 (2003).
	-- DOI: 10.1063/1.1600519
	--
	-- Notes:
	-- Wurtzite InN (space group P6_3mc). In-plane a-axis
	-- a = 3.545 Angstrom at ~300 K; the c-axis (c = 5.703 Angstrom) is
	-- NOT returned here. Room-temperature value.

	local enabled = true
	local value = 3.545e-10

	return value, enabled
end

Quantum-well elastic stiffness constant C11 (material.qw_C11)

function material.qw_C11(state)
    -- Elastic stiffness constant C11
    -- Units: Pa
    --
    -- Reference:
    -- A. F. Wright,
    -- "Elastic properties of zinc-blende and wurtzite AlN, GaN, and InN,"
    -- J. Appl. Phys. 82, 2833 (1997). (first-principles)
    -- Set adopted by:
    -- I. Vurgaftman and J. R. Meyer,
    -- "Band parameters for nitrogen-containing semiconductors,"
    -- J. Appl. Phys. 94, 3675 (2003).
    -- DOI: 10.1063/1.1600519
    --
    -- Notes:
    -- 223 GPa -> 223e9 Pa. No complete experimental single-crystal set exists.

    local enabled = true
    local value = 223e9

    return value, enabled
end

Quantum-well elastic stiffness constant C12 (material.qw_C12)

function material.qw_C12(state)
    -- Elastic stiffness constant C12
    -- Units: Pa
    --
    -- Reference:
    -- A. F. Wright,
    -- "Elastic properties of zinc-blende and wurtzite AlN, GaN, and InN,"
    -- J. Appl. Phys. 82, 2833 (1997). (first-principles)
    -- (adopted by Vurgaftman & Meyer 2003, DOI: 10.1063/1.1600519)
    --
    -- Notes:
    -- 115 GPa -> 115e9 Pa.

    local enabled = true
    local value = 115e9

    return value, enabled
end

Quantum-well elastic stiffness constant C44 (material.qw_C44)

function material.qw_C44(state)
    -- Elastic stiffness constant C44
    -- Units: Pa
    --
    -- Reference:
    -- A. F. Wright,
    -- "Elastic properties of zinc-blende and wurtzite AlN, GaN, and InN,"
    -- J. Appl. Phys. 82, 2833 (1997). (first-principles)
    -- (adopted by Vurgaftman & Meyer 2003, DOI: 10.1063/1.1600519)
    --
    -- Notes:
    -- 48 GPa -> 48e9 Pa.

    local enabled = true
    local value = 48e9

    return value, enabled
end

Longitudinal optical phonon energy (material.phonon_lo_energy)

function material.phonon_lo_energy(state)
    -- Representative LO phonon energy for polar optical (Frohlich) scattering
    -- Units: eV
    --
    -- Reference:
    -- V. Yu. Davydov et al. (1999), Raman/IR study of hexagonal InN, as
    -- tabulated in the Ioffe NSM archive (InN optical properties); full
    -- bibliographic details not independently verified.
    --
    -- Notes:
    -- E1(LO) = 593 cm^-1, A1(LO) = 586 cm^-1 (differ by 1.2%). E1 used.
    -- 593 x 1.239842e-4 = 0.07352 eV. Kasic et al. place unscreened A1(LO)
    -- at >= 590 cm^-1, consistent.

    local enabled = true
    local value = 0.07352

    return value, enabled
end

Static dielectric constant (material.epsilon_static)

function material.epsilon_static(state)
    -- Static relative dielectric constant (lattice + electronic)
    -- Dimensionless
    --
    -- No sufficiently reliable value/reference identified.
    -- Disabled rather than estimated.
    --
    -- Notes:
    -- Reported InN static dielectric constants (13.1-15.3) predate or mix with
    -- the band-gap revision of InN and are not mutually consistent with the
    -- reported eps_inf values (5.8-9.3). No defensible value.

    local enabled = false
    local value = 0.0

    return value, enabled
end

High-frequency dielectric constant (material.epsilon_inf)

function material.epsilon_inf(state)
    -- High-frequency (electronic) relative dielectric constant
    -- Dimensionless
    --
    -- No sufficiently reliable value/reference identified.
    -- Disabled rather than estimated.
    --
    -- Notes:
    -- Reported values range 5.8-9.3 and depend strongly on carrier
    -- concentration; no defensible value.

    local enabled = false
    local value = 0.0

    return value, enabled
end

Wurtzite piezoelectric coefficient e15 (material.qw_e15)

function material.qw_e15(state)
    -- Wurtzite piezoelectric stress coefficient e15
    -- Units: C m^-2
    --
    -- No sufficiently reliable value/reference identified.
    -- Disabled rather than estimated.
    --
    -- Notes:
    -- No experimental InN e15 identified (theory only, with sign spread).

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