InGaAs material model
1. Introduction
This page contains the OghmaNano material model for InGaAs (In(1-x)Ga(x)As).
In(1-x)Ga(x)As ternary alloy
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 = {}
-- =====================================================================
-- In(1-x)Ga(x)As ternary alloy.
--
-- Composition convention:
-- x = Ga fraction (In fraction = 1 - x)
-- (This is a ternary: state.y is not used.)
--
-- Binary corners:
-- (x=0) -> InAs
-- (x=1) -> GaAs
--
-- Most properties are linear (Vegard-style) interpolation between the
-- InAs and GaAs corner values, each evaluated at state.T:
--
-- Q(x) = (1-x) Q_InAs + x Q_GaAs
--
-- The band gap adds ternary bowing (see Eg). The thermal conductivity
-- uses an alloy-resistivity model with a disorder term (see below).
--
-- InGaAs is DIRECT-gap across the whole composition range, so there is
-- no Gamma-X crossover to model (unlike AlGaAs).
--
-- The technologically central composition is In(0.53)Ga(0.47)As, which
-- is lattice-matched to InP and has Eg ~ 0.74 eV (~1.65 um); it is the
-- standard absorber for 1.3-1.55 um detectors and the channel of
-- InP-based HEMTs.
--
-- FIRST-PASS LIMITATION:
-- * Electron MOBILITY is interpolated linearly and is therefore
-- OPTIMISTIC: alloy-disorder scattering reduces the real mobility
-- well below the interpolation at intermediate x (see mu_e).
-- =====================================================================
-- Two-corner linear interpolation helper (v0 at x=0 = InAs).
Linear interpolation (lerp)
local function lerp(x, v_InAs, v_GaAs)
return (1.0 - x)*v_InAs + x*v_GaAs
end
-- Varshni helper (eV).
Temperature dependence of the band gap (Varshni equation) (varshni)
local function varshni(T, Eg0, a, b)
return Eg0 - a*T*T/(T + b)
end
Material name (material.name)
function material.name()
local enabled = true
return "InGaAs", enabled
end
Material description (material.description)
function material.description()
local enabled = true
return "In(1-x)Ga(x)As ternary alloy", enabled
end
Chemical formula (material.formula)
function material.formula()
local enabled = true
return "In(1-x)Ga(x)As", enabled
end
Band gap energy (material.Eg)
function material.Eg(state)
-- Units: eV
--
-- Direct band gap of In(1-x)Ga(x)As.
--
-- Method:
-- 1. Evaluate the direct gap of each corner at state.T using
-- Varshni (Y. P. Varshni, Physica 34, 149, 1967).
-- 2. Linearly interpolate.
-- 3. Subtract ternary bowing.
--
-- Parameters 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.
-- InAs: Eg0=0.417, a=2.76e-4, b=93
-- GaAs: Eg0=1.519, a=5.405e-4, b=204
-- Bowing C_InGaAs = 0.477 eV.
--
-- Gives Eg(300 K) = 0.354 eV (x=0, InAs), ~0.74 eV at x=0.47
-- (lattice-matched to InP), and 1.42 eV (x=1, GaAs).
local enabled = true
local T = state.T
local x = state.x
local Eg_InAs = varshni(T, 0.417, 2.76e-4, 93.0)
local Eg_GaAs = varshni(T, 1.519, 5.405e-4, 204.0)
local value = lerp(x, Eg_InAs, Eg_GaAs) - 0.477*x*(1.0 - x)
return value, enabled
end
Deformation potential Xi (material.Xi)
function material.Xi(state)
-- Electron affinity
-- Units: eV
--
-- Linear interpolation of the binary corner affinities:
-- InAs 4.9, GaAs 4.07 eV.
--
-- Note: corner affinities are themselves uncertain and affinity
-- differencing is unreliable for heterojunction offsets (e.g. the
-- In(0.53)Ga(0.47)As/InP band offset is better taken from a
-- measured value). Treat as approximate.
local enabled = true
local x = state.x
local value = lerp(x, 4.9, 4.07)
return value, enabled
end
Electron effective mass (material.me)
function material.me(state)
local enabled = true
local x = state.x -- x = Ga fraction (VERIFY; InGaAs and GaInAs identical alloy)
-- Gamma mass, InAs 0.026 -> GaAs 0.067. Slight downward bowing:
-- true Ga0.47In0.53As ~0.041 vs linear 0.045 (Vurgaftman 2001).
local value = 0.026 + 0.041*x
return value, enabled
end
Hole effective mass (material.mh)
function material.mh(state)
local enabled = true
local x = state.x
-- HH[001]: InAs 0.333 -> GaAs 0.35
local value = 0.333 + 0.017*x
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
--
-- Linear interpolation of the binary corner values, each with the
-- (T/300)^1.5 parabolic-band temperature dependence.
-- Nc(300 K): InAs 8.7e22, GaAs 4.7e23 m^-3.
--
-- Note: In-rich InGaAs has a light electron mass and a small gap,
-- so conduction-band non-parabolicity is significant and not
-- captured by the parabolic-band form.
local enabled = true
local T = state.T
local x = state.x
local f = (T/300.0)^1.5
local value = lerp(x, 8.7e22, 4.7e23)*f
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
--
-- Linear interpolation of the binary corner values, each with the
-- (T/300)^1.5 temperature dependence.
-- Nv(300 K): InAs 6.6e24, GaAs 7.0e24 m^-3.
local enabled = true
local T = state.T
local x = state.x
local f = (T/300.0)^1.5
local value = lerp(x, 6.6e24, 7.0e24)*f
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
--
-- Linear interpolation of the binary corner mobilities, each with
-- its own phonon-limited temperature dependence:
-- InAs 3.3 * (300/T)^1.7
-- GaAs 0.80 * (300/T)^(2/3)
--
-- WARNING: this linear interpolation is OPTIMISTIC. Alloy-disorder
-- scattering suppresses the real electron mobility below the
-- interpolated value at intermediate x. For example the linear
-- form gives ~2.1 m^2/V/s (21000 cm^2/V/s) at x=0.47, whereas
-- measured bulk In(0.53)Ga(0.47)As is ~1.0-1.2 m^2/V/s
-- (10000-12000 cm^2/V/s). Override with a measured mobility for
-- quantitative work.
local enabled = true
local T = state.T
local x = state.x
local m_InAs = 3.3 *(300.0/T)^1.7
local m_GaAs = 0.80*(300.0/T)^(2.0/3.0)
local value = lerp(x, m_InAs, m_GaAs)
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
--
-- Linear interpolation of the binary corner mobilities:
-- InAs 0.05 * (300/T)^2.3
-- GaAs 0.04 * (300/T)^2.3
--
-- Note: as for mu_e, alloy-disorder scattering reduces the real
-- hole mobility below this interpolation at intermediate x.
local enabled = true
local T = state.T
local x = state.x
local m_InAs = 0.05*(300.0/T)^2.3
local m_GaAs = 0.04*(300.0/T)^2.3
local value = lerp(x, m_InAs, m_GaAs)
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
--
-- Linear interpolation of the binary corner values:
-- InAs 15.15, GaAs 12.9.
-- (Gives ~13.9 at the In(0.53)Ga(0.47)As composition.)
local enabled = true
local x = state.x
local value = lerp(x, 15.15, 12.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
--
-- Linear interpolation of the binary corner values:
-- InAs 1.1e-16, GaAs 1.0e-16.
--
-- InGaAs is direct-gap throughout, so B stays large and roughly
-- composition-independent. Adjust by hand as needed.
local enabled = true
local x = state.x
local value = lerp(x, 1.1e-16, 1.0e-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
--
-- Linear interpolation of the binary corner values:
-- InAs 1.0e-39, GaAs 7.0e-42.
--
-- IMPORTANT: Auger grows strongly toward the In-rich (small-gap)
-- corner and is an important loss in long-wavelength InGaAs
-- detectors. The InAs corner is ~2 orders larger than GaAs, so the
-- interpolated coefficient rises sharply as x decreases. Corner
-- values are representative and temperature-independent here;
-- adjust by hand for quantitative work.
local enabled = true
local x = state.x
local value = lerp(x, 1.0e-39, 7.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
--
-- Linear interpolation of the binary corner values:
-- InAs 1.0e-39, GaAs 1.0e-41.
--
-- IMPORTANT: see auger_Cn. Grows strongly toward the In-rich
-- corner; adjust by hand.
local enabled = true
local x = state.x
local value = lerp(x, 1.0e-39, 1.0e-41)
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
--
-- Material-quality dependent; set from the intended bulk lifetime.
-- Representative placeholder for device-grade 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
--
-- Alloy thermal conductivity via a thermal-resistivity model
-- (after S. Adachi): the resistivity W = 1/kappa interpolates
-- linearly between the binaries PLUS a bimodal alloy-disorder term
-- that peaks mid-composition:
--
-- W(x,T) = (1-x) W_InAs(T) + x W_GaAs(T) + C_alloy * x(1-x)
-- kappa = 1 / W
--
-- with C_alloy = 0.70 m*K/W (fitted to reproduce the measured
-- In(0.53)Ga(0.47)As value of ~5 W/m/K), and endpoint
-- conductivities kappa_InAs = 27*(300/T)^1.4 and
-- kappa_GaAs = 55*(300/T)^1.25 W/m/K.
--
-- This reproduces the strong InGaAs conductivity dip: kappa falls
-- to ~5 W/m/K near the lattice-matched composition, an order of
-- magnitude below the binaries. A linear interpolation would badly
-- overestimate mid-composition conductivity and under-predict
-- self-heating.
local enabled = true
local T = state.T
local x = state.x
local W_InAs = 1.0/(27.0*(300.0/T)^1.4)
local W_GaAs = 1.0/(55.0*(300.0/T)^1.25)
local C_alloy = 0.70
local W = (1.0 - x)*W_InAs + x*W_GaAs + C_alloy*x*(1.0 - x)
local value = 1.0/W
return value, enabled
end
Specific heat capacity (material.heat_capacity)
function material.heat_capacity(state)
-- Specific heat capacity
-- Units: J kg^-1 K^-1
--
-- Linear interpolation (approximately Neumann-Kopp) of the binary
-- corner values: InAs 250, GaAs 330.
local enabled = true
local x = state.x
local value = lerp(x, 250.0, 330.0)
return value, enabled
end
Mass density (material.density)
function material.density(state)
-- Mass density
-- Units: kg m^-3
--
-- Linear interpolation of the binary corner values:
-- InAs 5670, GaAs 5317.
local enabled = true
local x = state.x
local value = lerp(x, 5670.0, 5317.0)
return value, enabled
end
Crystal lattice constant (material.lattice_constant)
function material.lattice_constant(state)
-- Cubic lattice constant
-- Units: m
--
-- Vegard's law between the binary corners, each with its own
-- linear thermal expansion:
-- InAs a=6.0583 A, exp 4.5e-6 /K
-- GaAs a=5.65325 A, exp 5.7e-6 /K
-- (Vurgaftman et al., 2001.)
--
-- Lattice matching to InP (a = 5.8697 A) occurs at x ~ 0.47, i.e.
-- In(0.53)Ga(0.47)As -- the standard InP-based device composition.
local enabled = true
local T = state.T
local x = state.x
local a_InAs = 6.0583e-10 *(1.0 + 4.5e-6*(T - 300.0))
local a_GaAs = 5.65325e-10*(1.0 + 5.7e-6*(T - 300.0))
local value = lerp(x, a_InAs, a_GaAs)
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: III-V family estimate
-- Confidence: Medium
--
-- Reference:
-- https://www.mdpi.com/2673-3978/3/2/16
--
-- Comments:
-- Representative III-V carrier-to-lattice relaxation time. GaAs-like values
-- are typically sub-ps to ps and field dependent.
local enabled = true
local value = 5.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: III-V family estimate
-- Confidence: Medium
--
-- Reference:
-- https://www.mdpi.com/2673-3978/3/2/16
--
-- Comments:
-- Representative III-V carrier-to-lattice relaxation time. GaAs-like values
-- are typically sub-ps to ps and field dependent.
local enabled = true
local value = 5.000000e-13
return value, enabled
end
Spin–orbit splitting energy (material.delta_so)
function material.delta_so(state)
-- Spin-orbit splitting energy (Delta_SO)
-- Units: eV
--
-- Reference:
-- Linear interpolation of binary endpoints GaAs, InAs from
-- Vurgaftman, Meyer, Ram-Mohan, J. Appl. Phys. 89, 5815 (2001).
--
-- Note:
-- Composition: Ga(x)In(1-x)As; x = Ga mole fraction.
-- Linear interpolation of endpoints (no bowing applied).
local enabled = true
local x = state.x
local value = (x)*0.341 + ((1.0-x))*0.39
return value, enabled
end
Kane interband coupling energy (material.Ep)
function material.Ep(state)
-- Kane energy E_P (optical matrix element parameter)
-- Units: eV
--
-- Reference:
-- Linear interpolation of binary endpoints GaAs, InAs from
-- Vurgaftman, Meyer, Ram-Mohan, J. Appl. Phys. 89, 5815 (2001).
--
-- Note:
-- Composition: Ga(x)In(1-x)As; x = Ga mole fraction.
-- Linear interpolation of endpoints (no bowing applied).
local enabled = true
local x = state.x
local value = (x)*28.8 + ((1.0-x))*21.5
return value, enabled
end
Luttinger parameter gamma1 (material.gamma1)
function material.gamma1(state)
-- Luttinger parameter gamma1
-- Units: dimensionless
--
-- Reference:
-- Linear interpolation of binary endpoints GaAs, InAs from
-- Vurgaftman, Meyer, Ram-Mohan, J. Appl. Phys. 89, 5815 (2001).
--
-- Note:
-- Composition: Ga(x)In(1-x)As; x = Ga mole fraction.
-- Linear interpolation of endpoints (no bowing applied).
local enabled = true
local x = state.x
local value = (x)*6.98 + ((1.0-x))*20
return value, enabled
end
Luttinger parameter gamma2 (material.gamma2)
function material.gamma2(state)
-- Luttinger parameter gamma2
-- Units: dimensionless
--
-- Reference:
-- Linear interpolation of binary endpoints GaAs, InAs from
-- Vurgaftman, Meyer, Ram-Mohan, J. Appl. Phys. 89, 5815 (2001).
--
-- Note:
-- Composition: Ga(x)In(1-x)As; x = Ga mole fraction.
-- Linear interpolation of endpoints (no bowing applied).
local enabled = true
local x = state.x
local value = (x)*2.06 + ((1.0-x))*8.5
return value, enabled
end
Luttinger parameter gamma3 (material.gamma3)
function material.gamma3(state)
-- Luttinger parameter gamma3
-- Units: dimensionless
--
-- Reference:
-- Linear interpolation of binary endpoints GaAs, InAs from
-- Vurgaftman, Meyer, Ram-Mohan, J. Appl. Phys. 89, 5815 (2001).
--
-- Note:
-- Composition: Ga(x)In(1-x)As; x = Ga mole fraction.
-- Linear interpolation of endpoints (no bowing applied).
local enabled = true
local x = state.x
local value = (x)*2.93 + ((1.0-x))*9.2
return value, enabled
end
Optical absorption coefficient (material.ac)
function material.ac(state)
-- Conduction-band hydrostatic deformation potential a_c
-- Units: eV
--
-- Reference:
-- Linear interpolation of binary endpoints GaAs, InAs from
-- Vurgaftman, Meyer, Ram-Mohan, J. Appl. Phys. 89, 5815 (2001).
--
-- Note:
-- Composition: Ga(x)In(1-x)As; x = Ga mole fraction.
-- VMR sign convention: interband hydrostatic deformation potential
-- a_gap = a_c - a_v, with a_c negative and a_v tabulated positive.
-- Sign preserved from source; no sign flip applied.
-- Linear interpolation of endpoints (no bowing applied).
local enabled = true
local x = state.x
local value = (x)*-7.17 + ((1.0-x))*-5.08
return value, enabled
end
Optical absorption / extinction parameter (material.av)
function material.av(state)
-- Valence-band hydrostatic deformation potential a_v
-- Units: eV
--
-- Reference:
-- Linear interpolation of binary endpoints GaAs, InAs from
-- Vurgaftman, Meyer, Ram-Mohan, J. Appl. Phys. 89, 5815 (2001).
--
-- Note:
-- Composition: Ga(x)In(1-x)As; x = Ga mole fraction.
-- VMR sign convention: a_v tabulated as a POSITIVE number; the
-- interband hydrostatic deformation potential is a_gap = a_c - a_v.
-- Sign preserved from source; no sign flip applied.
-- Linear interpolation of endpoints (no bowing applied).
local enabled = true
local x = state.x
local value = (x)*1.16 + ((1.0-x))*1
return value, enabled
end
Recombination parameter b (material.b)
function material.b(state)
-- Valence-band shear (tetragonal) deformation potential b
-- Units: eV
--
-- Reference:
-- Linear interpolation of binary endpoints GaAs, InAs from
-- Vurgaftman, Meyer, Ram-Mohan, J. Appl. Phys. 89, 5815 (2001).
--
-- Note:
-- Composition: Ga(x)In(1-x)As; x = Ga mole fraction.
-- Sign convention as in VMR (b negative). Sign preserved; not flipped.
-- Linear interpolation of endpoints (no bowing applied).
local enabled = true
local x = state.x
local value = (x)*-2 + ((1.0-x))*-1.8
return value, enabled
end
Material parameter d (material.d)
function material.d(state)
-- Valence-band shear (rhombohedral) deformation potential d
-- Units: eV
--
-- Reference:
-- Linear interpolation of binary endpoints GaAs, InAs from
-- Vurgaftman, Meyer, Ram-Mohan, J. Appl. Phys. 89, 5815 (2001).
--
-- Note:
-- Composition: Ga(x)In(1-x)As; x = Ga mole fraction.
-- Sign convention as in VMR (d negative). Sign preserved; not flipped.
-- Linear interpolation of endpoints (no bowing applied).
local enabled = true
local x = state.x
local value = (x)*-4.8 + ((1.0-x))*-3.6
return value, enabled
end
Lattice constant a (material.lattice_a)
function material.lattice_a(state)
-- Cubic (zincblende) lattice constant a
-- Units: m
--
-- Reference:
-- Vegard's law (linear) interpolation of GaAs, InAs endpoints,
-- Vurgaftman, Meyer, Ram-Mohan, J. Appl. Phys. 89, 5815 (2001).
--
-- Note:
-- Composition: Ga(x)In(1-x)As; x = Ga mole fraction.
-- Endpoint a(T)=a300+da/dT*(T-300); linear (Vegard) mixing.
local enabled = true
local x = state.x
local T = state.T
local value = ((x)*(5.65325 + 3.88e-05*(T-300.0)) + ((1.0-x))*(6.0583 + 2.74e-05*(T-300.0)))*1e-10
return value, enabled
end
Elastic stiffness constant C11 (material.C11)
function material.C11(state)
-- Elastic stiffness constant C11
-- Units: Pa
--
-- Reference:
-- Linear interpolation of binary endpoints GaAs, InAs from
-- Vurgaftman, Meyer, Ram-Mohan, J. Appl. Phys. 89, 5815 (2001).
--
-- Note:
-- Composition: Ga(x)In(1-x)As; x = Ga mole fraction.
-- Linear interpolation of endpoints (no bowing applied).
local enabled = true
local x = state.x
local value = ((x)*122.1 + ((1.0-x))*83.29)*1e9
return value, enabled
end
Elastic stiffness constant C12 (material.C12)
function material.C12(state)
-- Elastic stiffness constant C12
-- Units: Pa
--
-- Reference:
-- Linear interpolation of binary endpoints GaAs, InAs from
-- Vurgaftman, Meyer, Ram-Mohan, J. Appl. Phys. 89, 5815 (2001).
--
-- Note:
-- Composition: Ga(x)In(1-x)As; x = Ga mole fraction.
-- Linear interpolation of endpoints (no bowing applied).
local enabled = true
local x = state.x
local value = ((x)*56.6 + ((1.0-x))*45.26)*1e9
return value, enabled
end
Elastic stiffness constant C44 (material.C44)
function material.C44(state)
-- Elastic stiffness constant C44
-- Units: Pa
--
-- Composition: In_x Ga_(1-x) As, x = state.x is the In fraction (In_x Ga_(1-x) As)
--
-- Endpoint GaAs: Vurgaftman et al. (2001) recommended 600 kbar (underlying ultrasonic data; Ioffe/Burenkov 1973 gives 59.6 GPa at 300 K) -> 60 GPa.
-- Endpoint InAs: Vurgaftman et al. (2001) recommended 395.9 kbar (Burenkov et al. 1975 ultrasonic: 39.5 GPa) -> 39.59 GPa.
-- Both endpoints 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 (2001), recommended binary parameter tables
-- (Tables I-VI checked for GaAs, AlAs, InAs, GaP, AlP, InP).
-- DOI: 10.1063/1.1368156
-- (1 kbar = 1e8 Pa)
--
-- Interpolation:
-- Linear in state.x: value = (1-x)*GaAs + x*InAs. No bowing applied
-- (none verified for this quantity).
local enabled = true
local x = state.x
local GaAs = 60e9
local InAs = 39.59e9
local value = (1.0-x)*GaAs + x*InAs
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
--
-- No sufficiently reliable value/reference identified.
-- Disabled rather than estimated.
--
-- Notes:
-- Two-mode (or multi-mode) LO phonon behaviour in this alloy. A targeted
-- search of transport-model and parameter-compilation literature found
-- only composition-specific effective polar-optical energies (e.g. about
-- 34 meV quoted for lattice-matched Ga0.47In0.53As), not a general
-- composition-dependent one-mode representation with a primary
-- reference (unlike AlGaAs, for which Adachi 1985 gives one). Averaging
-- the endpoint LO energies is not a recognised representation, so the
-- parameter is left disabled.
local enabled = false
local value = 0.0
return value, enabled
end
Static dielectric constant (material.epsilon_static)
function material.epsilon_static(state)
-- Static relative dielectric constant (lattice + electronic)
-- Dimensionless
--
-- Composition: In_x Ga_(1-x) As, x = state.x is the In fraction (In_x Ga_(1-x) As)
--
-- Endpoint GaAs: 12.9
-- Endpoint InAs: 15.15
-- Both endpoints from:
-- M. Levinshtein, S. Rumyantsev, M. Shur (eds.),
-- Handbook Series on Semiconductor Parameters, Vols. 1 and 2
-- (World Scientific, 1996 and 1999), as reproduced in the Ioffe
-- Institute NSM archive (www.ioffe.ru/SVA/NSM/Semicond/).
--
-- Interpolation:
-- Linear in state.x: value = (1-x)*GaAs + x*InAs. No bowing applied
-- (none verified for this quantity).
-- Notes:
-- The same compilation also quotes a quadratic form in the Ga fraction g,
-- eps_s = 15.1 - 2.87g + 0.67g^2, but without a traceable primary
-- reference for the bowing term; the linear form is kept (difference
-- < 0.2 over the full range).
local enabled = true
local x = state.x
local GaAs = 12.9
local InAs = 15.15
local value = (1.0-x)*GaAs + x*InAs
return value, enabled
end
High-frequency dielectric constant (material.epsilon_inf)
function material.epsilon_inf(state)
-- High-frequency (electronic) relative dielectric constant
-- Dimensionless
--
-- Composition: In_x Ga_(1-x) As, x = state.x is the In fraction (In_x Ga_(1-x) As)
--
-- Endpoint GaAs: 10.89
-- Endpoint InAs: 12.3
-- Both endpoints from:
-- M. Levinshtein, S. Rumyantsev, M. Shur (eds.),
-- Handbook Series on Semiconductor Parameters, Vols. 1 and 2
-- (World Scientific, 1996 and 1999), as reproduced in the Ioffe
-- Institute NSM archive (www.ioffe.ru/SVA/NSM/Semicond/).
--
-- Interpolation:
-- Linear in state.x: value = (1-x)*GaAs + x*InAs. No bowing applied
-- (none verified for this quantity).
local enabled = true
local x = state.x
local GaAs = 10.89
local InAs = 12.3
local value = (1.0-x)*GaAs + x*InAs
return value, enabled
end
Piezoelectric coefficient e14 (material.e14)
function material.e14(state)
-- Zincblende piezoelectric stress coefficient e14
-- Units: C m^-2
--
-- Composition: In_x Ga_(1-x) As, x = state.x is the In fraction (In_x Ga_(1-x) As)
--
-- Endpoint GaAs: -0.16
-- Endpoint InAs: -0.045
-- Both endpoints from:
-- M. Levinshtein, S. Rumyantsev, M. Shur (eds.),
-- Handbook Series on Semiconductor Parameters, Vols. 1 and 2
-- (World Scientific, 1996 and 1999), as reproduced in the Ioffe
-- Institute NSM archive (www.ioffe.ru/SVA/NSM/Semicond/).
--
-- Interpolation:
-- Linear in state.x: value = (1-x)*GaAs + x*InAs. No bowing applied
-- (none verified for this quantity).
-- Sign as tabulated in the compilation (negative for III-V in that
-- convention). e14 sign conventions differ between sources (orientation of
-- [111] relative to the cation->anion bond); piezoelectric scattering
-- depends only on e14^2.
local enabled = true
local x = state.x
local GaAs = -0.16
local InAs = -0.045
local value = (1.0-x)*GaAs + x*InAs
return value, enabled
end
Material parameter summary (material.print)
function material.print()
-- Representative composition: In(0.53)Ga(0.47)As, lattice-matched
-- to InP (x = Ga fraction = 0.47).
local state = {
T = 300.0,
x = 0.47,
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("Composition x (Ga): %.4f", state.x))
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.
-- ============================================================================