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

GaN material model

1. Introduction

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

Bulk crystalline gallium 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 "GaN", enabled
end

Material description (material.description)

function material.description()
	local enabled = true

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

Chemical formula (material.formula)

function material.formula()
	local enabled = true

	return "GaN", 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 GaN parameter set (Eg(0) = 3.510 eV,
	-- alpha = 9.09e-4 eV/K, beta = 830 K) from
	-- I. Vurgaftman, J. R. Meyer, L. R. Ram-Mohan,
	-- "Band parameters for III-V compound semiconductors and their
	-- alloys", J. Appl. Phys. 89, 5815-5875, 2001.
	-- Gives Eg(300 K) = 3.44 eV. Direct gap.

	local enabled = true
	local T = state.T
	local value = 3.510 - 9.09e-4*T*T/(T + 830.0)

	return value, enabled
end

Deformation potential Xi (material.Xi)

function material.Xi(state)
	-- Electron affinity
	-- Units: eV
	--
	-- Reference:
	-- Ioffe NSM database (GaN) / device literature.
	--
	-- Note: reported GaN electron affinity scatters widely
	-- (~3.1-4.1 eV) depending on surface polarity and termination;
	-- 4.1 eV used here. Heterojunction offsets to AlGaN/InGaN are
	-- better set from measured band offsets than from affinities.

	local enabled = true
	local value = 4.1

	return value, enabled
end

Electron effective mass (material.me)

function material.me(state)
    local enabled = true
    local value = 0.20    -- wurtzite, ~isotropic (Vurgaftman 2003)
    return value, enabled
end

Hole effective mass (material.mh)

function material.mh(state)
    local enabled = true
    -- HH along c: -1/(A1+A3), A1=-7.21 A3=6.68 (Vurgaftman 2003)
    -- WARNING: wurtzite VB is multiband; single scalar is approximate, large spread.
    local value = 1.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
	--
	-- Reference:
	-- Ioffe NSM database (GaN), from electron effective mass
	-- m_e* ~ 0.20 m0.
	-- Nc(300 K) = 2.3e18 cm^-3 = 2.3e24 m^-3.
	--
	-- Note: the (T/300)^1.5 form is the simple parabolic-band model.

	local enabled = true
	local T = state.T
	local value = 2.3e24*(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:
	-- Ioffe NSM database (GaN), from the (heavy) hole effective mass.
	-- Nv(300 K) = 4.6e19 cm^-3 = 4.6e25 m^-3.

	local enabled = true
	local T = state.T
	local value = 4.6e25*(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:
	-- Ioffe NSM database (GaN), experimental compilation.
	-- mu_n(300 K) ~ 1000 cm^2/V/s = 0.1 m^2/V/s (bulk, low doping),
	-- phonon-limited temperature dependence approximately (300/T)^1.5.
	--
	-- Note: bulk value. AlGaN/GaN 2DEG channels reach much higher
	-- mobilities. Intrinsic (lattice) mobility only; no doping /
	-- dislocation-scattering dependence.

	local enabled = true
	local T = state.T
	local value = 0.1*(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:
	-- Ioffe NSM database (GaN), experimental compilation.
	-- mu_p(300 K) ~ 30 cm^2/V/s = 0.003 m^2/V/s, phonon-limited
	-- temperature dependence approximately (300/T)^2.0.
	--
	-- Note: GaN hole mobility is low and poorly constrained
	-- (reported ~10-200 cm^2/V/s). In real p-GaN the effective hole
	-- density is further limited by the large Mg acceptor activation
	-- energy (~150-200 meV). Treat as approximate.

	local enabled = true
	local T = state.T
	local value = 0.003*(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 (GaN).
	-- Static value ~8.9 (high-frequency value ~5.35).
	--
	-- Note: wurtzite GaN is anisotropic (epsilon differs parallel vs
	-- perpendicular to the c-axis); a representative value is used.

	local enabled = true
	local value = 8.9

	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 GaN, ~2e-11 cm^3/s = 2e-17 m^3/s.
	--
	-- GaN is a direct-gap semiconductor, so B is significant (this is
	-- the "B" of the ABC droop model). Reported values scatter over
	-- an order of magnitude; 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 value for GaN, ~1e-30 cm^6/s = 1e-42 m^6/s.
	--
	-- IMPORTANT: this is the "C" of the ABC droop model and is one of
	-- the most contested parameters in nitride optoelectronics.
	-- Reported values span ~1e-31 to ~5e-30 cm^6/s depending on
	-- material and on whether indirect/phonon-assisted Auger is
	-- included. Adjust by hand for your device.

	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 value for GaN, ~1e-30 cm^6/s = 1e-42 m^6/s.
	--
	-- IMPORTANT: see the note on auger_Cn. Highly contested; adjust
	-- by hand for your device.

	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: in real GaN, threading dislocations are a major
	-- non-radiative recombination source and dominate the effective
	-- SRH lifetime; set this from your material's dislocation density.

	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 (GaN).
	-- kappa(300 K) ~ 130 W/m/K; near room temperature kappa decreases
	-- with T with an effective exponent of about -1.4.
	--
	-- Note: strongly quality dependent; high dislocation densities
	-- reduce kappa well below the intrinsic value.

	local enabled = true
	local T = state.T
	local value = 130.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 (GaN). c_p(300 K) ~ 490 J/kg/K.

	local enabled = true
	local value = 490.0

	return value, enabled
end

Mass density (material.density)

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

	local enabled = true
	local value = 6150.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, J. R. Meyer, L. R. Ram-Mohan,
	-- "Band parameters for III-V compound semiconductors and their
	-- alloys", J. Appl. Phys. 89, 5815-5875, 2001; Ioffe NSM database.
	-- a(300 K) = 3.189 A; linear expansion ~5.6e-6 /K near 300 K.
	--
	-- IMPORTANT: wurtzite GaN is hexagonal, with two lattice
	-- constants a = 3.189 A and c = 5.185 A. This single scalar field
	-- holds the a-axis constant only; the c-axis constant is not
	-- representable here.
	--
	-- Note: wurtzite GaN also has large spontaneous and piezoelectric
	-- polarization. The resulting internal fields dominate quantum-
	-- well device behaviour but are not captured by any scalar in
	-- this material file.

	local enabled = true
	local T = state.T
	local a300 = 3.189e-10
	local expansion = 5.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

Wurtzite crystal-field splitting delta1 (material.qw_delta1)

function material.qw_delta1(state)
-- Crystal-field delta1 (Rinke 2008 Delta_CR). Units: eV. Linear.
--
-- GaN endpoint:
-- 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
--
-- AlN endpoint:
-- 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 x = 0.0
	local y = 0.0
	local GaN = 0.034
	local AlN = -0.295
	local enabled = true
	local value = (1.0-x)*GaN + x*AlN
	return value, enabled
end

Wurtzite spin–orbit splitting delta2 (material.qw_delta2)

function material.qw_delta2(state)
-- Spin-orbit delta2 = Dso/3 (quasi-cubic). Units: eV. Dso linear.
--
-- GaN endpoint: Dso=0.017 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
--
-- AlN endpoint: Dso=0.019 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 x = 0.0
	local y = 0.0
	local Dso_GaN = 0.017
	local Dso_AlN = 0.019
	local Dso = (1.0-x)*Dso_GaN + x*Dso_AlN
	local enabled = true
	local value = Dso/3.0
	return value, enabled
end

Wurtzite spin–orbit splitting delta3 (material.qw_delta3)

function material.qw_delta3(state)
-- Spin-orbit delta3 = Dso/3 (quasi-cubic). Units: eV. Dso linear.
--
-- GaN endpoint: Dso=0.017 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
--
-- AlN endpoint: Dso=0.019 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 x = 0.0
	local y = 0.0
	local Dso_GaN = 0.017
	local Dso_AlN = 0.019
	local Dso = (1.0-x)*Dso_GaN + x*Dso_AlN
	local enabled = true
	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. Linear.
--
-- GaN endpoint:
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
--
-- AlN endpoint:
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
	local x = 0.0
	local y = 0.0
	local GaN = -5.947
	local AlN = -3.991
	local enabled = true
	local value = (1.0-x)*GaN + x*AlN
	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. Linear.
--
-- GaN endpoint:
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
--
-- AlN endpoint:
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
	local x = 0.0
	local y = 0.0
	local GaN = -0.528
	local AlN = -0.311
	local enabled = true
	local value = (1.0-x)*GaN + x*AlN
	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. Linear.
--
-- GaN endpoint:
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
--
-- AlN endpoint:
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
	local x = 0.0
	local y = 0.0
	local GaN = 5.414
	local AlN = 3.671
	local enabled = true
	local value = (1.0-x)*GaN + x*AlN
	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. Linear.
--
-- GaN endpoint:
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
--
-- AlN endpoint:
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
	local x = 0.0
	local y = 0.0
	local GaN = -2.512
	local AlN = -1.147
	local enabled = true
	local value = (1.0-x)*GaN + x*AlN
	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. Linear.
--
-- GaN endpoint:
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
--
-- AlN endpoint:
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
	local x = 0.0
	local y = 0.0
	local GaN = -2.51
	local AlN = -1.329
	local enabled = true
	local value = (1.0-x)*GaN + x*AlN
	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. Linear.
--
-- GaN endpoint:
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
--
-- AlN endpoint:
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
	local x = 0.0
	local y = 0.0
	local GaN = -3.202
	local AlN = -1.952
	local enabled = true
	local value = (1.0-x)*GaN + x*AlN
	return value, enabled
end

Wurtzite interband coupling energy Ep1 (material.qw_Ep1)

function material.qw_Ep1(state)
-- Kane energy || c. Units: eV. Linear.
--
-- GaN endpoint:
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
--
-- AlN endpoint:
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
	local x = 0.0
	local y = 0.0
	local GaN = 17.292
	local AlN = 16.972
	local enabled = true
	local value = (1.0-x)*GaN + x*AlN
	return value, enabled
end

Wurtzite interband coupling energy Ep2 (material.qw_Ep2)

function material.qw_Ep2(state)
-- Kane energy perp c. Units: eV. Linear.
--
-- GaN endpoint:
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
--
-- AlN endpoint:
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
	local x = 0.0
	local y = 0.0
	local GaN = 16.265
	local AlN = 18.165
	local enabled = true
	local value = (1.0-x)*GaN + x*AlN
	return value, enabled
end

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

function material.qw_S1(state)
-- Conduction remote+free-electron parameter || c (kz^2). Dimensionless.
-- Recomputed from interpolated m/Eg/delta1/Ep (see AlN.lua qw_S1
-- for the derivation); reproduces the binary S at x=0 and x=1.
-- Eg here is linear (no bowing); for strongly-bowed alloys feed
-- the physical Eg if high accuracy in S is needed.
--
-- GaN endpoint:
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
--
-- AlN endpoint:
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
	local x = 0.0
	local y = 0.0

	-- interpolate the underlying Rinke quantities, then compute S:
	local mpar  = (1.0-x)*0.186 + x*0.322
	local mperp = (1.0-x)*0.209 + x*0.329
	local Eg    = (1.0-x)*3.24 + x*6.47
	local d1    = (1.0-x)*0.034 + x*-0.295
	local Ep1   = (1.0-x)*17.292 + x*16.972
	local Ep2   = (1.0-x)*16.265 + x*18.165
	local Egt = Eg
	if d1 < 0.0 then Egt = Eg - d1 end   -- Egtilde = Eg + |d1|
	local enabled = true
	local value = 1.0/mpar - 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 (kx^2+ky^2). Dimensionless.
-- Recomputed from interpolated m/Eg/delta1/Ep (see AlN.lua qw_S1
-- for the derivation); reproduces the binary S at x=0 and x=1.
-- Eg here is linear (no bowing); for strongly-bowed alloys feed
-- the physical Eg if high accuracy in S is needed.
--
-- GaN endpoint:
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
--
-- AlN endpoint:
-- P. Rinke et al., Physical Review B 77, 075202 (2008).
-- DOI: 10.1103/PhysRevB.77.075202
	local x = 0.0
	local y = 0.0

	-- interpolate the underlying Rinke quantities, then compute S:
	local mpar  = (1.0-x)*0.186 + x*0.322
	local mperp = (1.0-x)*0.209 + x*0.329
	local Eg    = (1.0-x)*3.24 + x*6.47
	local d1    = (1.0-x)*0.034 + x*-0.295
	local Ep1   = (1.0-x)*17.292 + x*16.972
	local Ep2   = (1.0-x)*16.265 + x*18.165
	local Egt = Eg
	if d1 < 0.0 then Egt = Eg - d1 end   -- Egtilde = Eg + |d1|
	local enabled = true
	local value = 1.0/mperp - Ep2/Egt
	return value, enabled
end

Quantum-well parameter a1 (material.qw_a1)

function material.qw_a1(state)
-- Conduction-band deformation potential || c (= acz-D1). Units: eV.
-- Linear.
--
-- GaN endpoint:
-- 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
--
-- AlN endpoint:
-- 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 x = 0.0
	local y = 0.0
	local GaN = -4.9
	local AlN = -3.4
	local enabled = true
	local value = (1.0-x)*GaN + x*AlN
	return value, enabled
end

Quantum-well parameter a2 (material.qw_a2)

function material.qw_a2(state)
-- Conduction-band deformation potential perp c (= act-D2). Units: eV.
-- Linear. (AlN endpoint -11.8 eV; VM2003 misprints it as meV.)
--
-- GaN endpoint:
-- 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
--
-- AlN endpoint:
-- 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 x = 0.0
	local y = 0.0
	local GaN = -11.3
	local AlN = -11.8
	local enabled = true
	local value = (1.0-x)*GaN + x*AlN
	return value, enabled
end

Wurtzite deformation potential D1 (material.qw_D1)

function material.qw_D1(state)
-- Valence-band deformation potential D1. Units: eV. Linear.
--
-- GaN endpoint:
-- 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
--
-- AlN endpoint:
-- 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
--
-- Original parameter source cited therein:
-- K. Shimada, T. Sota, and K. Suzuki, "First-principles study on
--  electronic and elastic properties of BN, AlN, and GaN,"
--  Journal of Applied Physics 84, 4951-4958 (1998).
--  DOI: 10.1063/1.368739
	local x = 0.0
	local y = 0.0
	local GaN = -3.7
	local AlN = -17.1
	local enabled = true
	local value = (1.0-x)*GaN + x*AlN
	return value, enabled
end

Wurtzite deformation potential D2 (material.qw_D2)

function material.qw_D2(state)
-- Valence-band deformation potential D2. Units: eV. Linear.
--
-- GaN endpoint:
-- 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
--
-- AlN endpoint:
-- 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
--
-- Original parameter source cited therein:
-- K. Shimada, T. Sota, and K. Suzuki, "First-principles study on
--  electronic and elastic properties of BN, AlN, and GaN,"
--  Journal of Applied Physics 84, 4951-4958 (1998).
--  DOI: 10.1063/1.368739
	local x = 0.0
	local y = 0.0
	local GaN = 4.5
	local AlN = 7.9
	local enabled = true
	local value = (1.0-x)*GaN + x*AlN
	return value, enabled
end

Wurtzite deformation potential D3 (material.qw_D3)

function material.qw_D3(state)
-- Valence-band deformation potential D3. Units: eV. Linear.
--
-- GaN endpoint:
-- 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
--
-- AlN endpoint:
-- 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
--
-- Original parameter source cited therein:
-- K. Shimada, T. Sota, and K. Suzuki, "First-principles study on
--  electronic and elastic properties of BN, AlN, and GaN,"
--  Journal of Applied Physics 84, 4951-4958 (1998).
--  DOI: 10.1063/1.368739
	local x = 0.0
	local y = 0.0
	local GaN = 8.2
	local AlN = 8.8
	local enabled = true
	local value = (1.0-x)*GaN + x*AlN
	return value, enabled
end

Wurtzite deformation potential D4 (material.qw_D4)

function material.qw_D4(state)
-- Valence-band deformation potential D4. Units: eV. Linear.
--
-- GaN endpoint:
-- 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
--
-- AlN endpoint:
-- 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
--
-- Original parameter source cited therein:
-- K. Shimada, T. Sota, and K. Suzuki, "First-principles study on
--  electronic and elastic properties of BN, AlN, and GaN,"
--  Journal of Applied Physics 84, 4951-4958 (1998).
--  DOI: 10.1063/1.368739
	local x = 0.0
	local y = 0.0
	local GaN = -4.1
	local AlN = -3.9
	local enabled = true
	local value = (1.0-x)*GaN + x*AlN
	return value, enabled
end

Wurtzite deformation potential D5 (material.qw_D5)

function material.qw_D5(state)
-- Valence-band deformation potential D5. Units: eV. Linear.
--
-- GaN endpoint:
-- 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
--
-- AlN endpoint:
-- 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
--
-- Original parameter source cited therein:
-- K. Shimada, T. Sota, and K. Suzuki, "First-principles study on
--  electronic and elastic properties of BN, AlN, and GaN,"
--  Journal of Applied Physics 84, 4951-4958 (1998).
--  DOI: 10.1063/1.368739
	local x = 0.0
	local y = 0.0
	local GaN = -4.0
	local AlN = -3.4
	local enabled = true
	local value = (1.0-x)*GaN + x*AlN
	return value, enabled
end

Wurtzite deformation potential D6 (material.qw_D6)

function material.qw_D6(state)
-- Valence-band deformation potential D6. Units: eV. Linear.
--
-- AlN D6 from VM2003 quasi-cubic (D5=D6); GaN D6 tabulated.
--
-- GaN endpoint:
-- 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
--
-- AlN endpoint:
-- 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
--
-- Original parameter source cited therein:
-- K. Shimada, T. Sota, and K. Suzuki, "First-principles study on
--  electronic and elastic properties of BN, AlN, and GaN,"
--  Journal of Applied Physics 84, 4951-4958 (1998).
--  DOI: 10.1063/1.368739
	local x = 0.0
	local y = 0.0
	local GaN = -5.5
	local AlN = -3.4
	local enabled = true
	local value = (1.0-x)*GaN + x*AlN
	return value, enabled
end

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

function material.qw_C13(state)
-- Elastic stiffness constant C13. Units: GPa.
--
-- Recommended value:
-- 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
--
-- Original experimental source cited therein:
-- A. Polian, M. Grimsditch, and I. Grzegory, "Elastic constants
--  of gallium nitride," Journal of Applied Physics 79, 3343-3344
--  (1996).
	local value = 106.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: GPa.
--
-- Recommended value:
-- 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
--
-- Original experimental source cited therein:
-- A. Polian, M. Grimsditch, and I. Grzegory, "Elastic constants
--  of gallium nitride," Journal of Applied Physics 79, 3343-3344
--  (1996).
	local value = 398.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.029
	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.49
	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.73
	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 GaN (space group P6_3mc). In-plane a-axis
	-- a = 3.189 Angstrom at ~300 K; the c-axis (c = 5.185 Angstrom) is
	-- NOT returned here. Room-temperature value.

	local enabled = true
	local value = 3.189e-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. Polian, M. Grimsditch, I. Grzegory,
    -- "Elastic constants of gallium nitride,"
    -- J. Appl. Phys. 79, 3343 (1996). (Brillouin scattering, 300 K)
    --
    -- Notes:
    -- 390 +/- 15 GPa -> 390e9 Pa. Same values adopted by Vurgaftman & Meyer
    -- (2003), DOI: 10.1063/1.1600519.

    local enabled = true
    local value = 390e9

    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. Polian, M. Grimsditch, I. Grzegory,
    -- "Elastic constants of gallium nitride,"
    -- J. Appl. Phys. 79, 3343 (1996). (Brillouin scattering, 300 K)
    --
    -- Notes:
    -- 145 +/- 20 GPa -> 145e9 Pa.

    local enabled = true
    local value = 145e9

    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. Polian, M. Grimsditch, I. Grzegory,
    -- "Elastic constants of gallium nitride,"
    -- J. Appl. Phys. 79, 3343 (1996). (Brillouin scattering, 300 K)
    --
    -- Notes:
    -- 105 +/- 10 GPa -> 105e9 Pa.

    local enabled = true
    local value = 105e9

    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:
    -- A. S. Barker, Jr. and M. Ilegems,
    -- "Infrared lattice vibrations and free-electron dispersion in GaN,"
    -- Phys. Rev. B 7, 743 (1973).
    -- DOI: 10.1103/PhysRevB.7.743
    --
    -- Notes:
    -- Kramers-Kronig analysis of IR reflectivity, 300 K:
    -- E1(LO) = 746 cm^-1, A1(LO) = 744 cm^-1 (differ by 0.3%). The E1 (E perp
    -- c) mode is used, consistent with eps values below.
    -- 746 x 1.239842e-4 = 0.09249 eV.

    local enabled = true
    local value = 0.09249

    return value, enabled
end

Static dielectric constant (material.epsilon_static)

function material.epsilon_static(state)
    -- Static relative dielectric constant (lattice + electronic)
    -- Dimensionless
    --
    -- Reference:
    -- A. S. Barker, Jr. and M. Ilegems,
    -- "Infrared lattice vibrations and free-electron dispersion in GaN,"
    -- Phys. Rev. B 7, 743 (1973).
    -- DOI: 10.1103/PhysRevB.7.743
    --
    -- Notes:
    -- eps_s(E perp c) = 9.5 (eps_s(E || c) = 10.4).
    -- LST check: 5.35*(746/559)^2 = 9.53.

    local enabled = true
    local value = 9.5

    return value, enabled
end

High-frequency dielectric constant (material.epsilon_inf)

function material.epsilon_inf(state)
    -- High-frequency (electronic) relative dielectric constant
    -- Dimensionless
    --
    -- Reference:
    -- A. S. Barker, Jr. and M. Ilegems,
    -- "Infrared lattice vibrations and free-electron dispersion in GaN,"
    -- Phys. Rev. B 7, 743 (1973).
    -- DOI: 10.1103/PhysRevB.7.743
    --
    -- Notes:
    -- eps_inf(E perp c) = 5.35.

    local enabled = true
    local value = 5.35

    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
    --
    -- Reference:
    -- K. Adachi, H. Ogi, A. Nagakubo, N. Nakamura, M. Hirao, M. Imade,
    -- M. Yoshimura, Y. Mori,
    -- "Piezoelectric coefficients of GaN determined by hopping conduction
    -- of carriers,"
    -- Appl. Phys. Lett. 109, 182108 (2016).
    -- DOI: 10.1063/1.4966995
    --
    -- Notes:
    -- e15 = -0.22 +/- 0.02 C/m^2 (resonant ultrasound spectroscopy, ~110 C;
    -- the authors estimate negligible change to room temperature).
    -- Convention: e33 = +1.15 > 0 in the same paper. Earlier estimates span
    -- about -0.40 to +0.33 C/m^2 (partly sign-convention differences); this is
    -- the most direct determination identified.

    local enabled = true
    local value = -0.22

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