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

GaAs material model

1. Introduction

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

Bulk crystalline gallium arsenide

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

Material description (material.description)

function material.description()
	local enabled = true

	return "Bulk crystalline gallium arsenide", enabled
end

Chemical formula (material.formula)

function material.formula()
	local enabled = true

	return "GaAs", 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.

	local enabled = true
	local T = state.T
	local value = 1.519 - 5.405e-4*T*T/(T + 204.0)

	return value, enabled
end

Deformation potential Xi (material.Xi)

function material.Xi(state)
	-- Electron affinity
	-- Units: eV
	--
	-- Reference:
	-- Add the precise reference used for this value.

	local enabled = true
	local value = 4.07

	return value, enabled
end

Electron effective mass (material.me)

function material.me(state)
    local enabled = true
    local value = 0.067   -- Gamma-valley electron mass (Vurgaftman 2001)
    return value, enabled
end

Hole effective mass (material.mh)

function material.mh(state)
    local enabled = true
    -- HH along [001]: 1/(g1-2g2), g1=6.98 g2=2.06 (Vurgaftman 2001)
    local value = 0.35
    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:
	-- Add the precise reference used for the effective mass
	-- or room-temperature density of states.

	local enabled = true
	local T = state.T
	local value = 4.7e23*(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:
	-- Add the precise reference used for the effective mass
	-- or room-temperature density of states.

	local enabled = true
	local T = state.T
	local value = 7.0e24*(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:
	-- Add the precise reference used for this temperature dependence.

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

	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:
	-- Add the precise reference used for this temperature dependence.

	local enabled = true
	local T = state.T
	local value = 0.04*(300.0/T)^2.3

	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:
	-- Add the precise reference used for this value.

	local enabled = true
	local value = 12.9

	return value, enabled
end

Free-carrier radiative recombination (material.free_to_free_recombination)

function material.free_to_free_recombination(state)
	-- Radiative recombination coefficient
	-- Units: m^3 s^-1
	--
	-- Reference:
	-- Add the precise reference used for this value.
	--
	-- This is a representative room-temperature value and should
	-- be checked against the intended GaAs material quality and model.

	local enabled = true
	local value = 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
	--
	-- Reference:
	-- Add the precise reference used for this value.

	local enabled = true
	local value = 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
	--
	-- Reference:
	-- Add the precise reference used for this value.

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

	local enabled = true
	local value = 5.0e22

	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

	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

	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:
	-- Add the precise reference used for this temperature dependence.

	local enabled = true
	local T = state.T
	local value = 55.0*(300.0/T)^1.25

	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:
	-- Add the precise reference used for this value or temperature model.

	local enabled = true
	local value = 330.0

	return value, enabled
end

Mass density (material.density)

function material.density(state)
	-- Mass density
	-- Units: kg m^-3
	--
	-- Reference:
	-- Add the precise reference used for this value.

	local enabled = true
	local value = 5317.0

	return value, enabled
end

Crystal lattice constant (material.lattice_constant)

function material.lattice_constant(state)
	-- Cubic lattice constant
	-- Units: m
	--
	-- Reference:
	-- Add the precise reference used for this value or thermal expansion.

	local enabled = true
	local T = state.T
	local a300 = 5.65325e-10
	local expansion = 5.7e-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: 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:
	-- Vurgaftman, Meyer, Ram-Mohan, J. Appl. Phys. 89, 5815 (2001).
	-- Recommended binary value for GaAs.

	local enabled = true
	local value = 0.341

	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:
	-- Vurgaftman, Meyer, Ram-Mohan, J. Appl. Phys. 89, 5815 (2001).
	-- Recommended binary value for GaAs.

	local enabled = true
	local value = 28.8

	return value, enabled
end

Luttinger parameter gamma1 (material.gamma1)

function material.gamma1(state)
	-- Luttinger parameter gamma1
	-- Units: dimensionless
	--
	-- Reference:
	-- Vurgaftman, Meyer, Ram-Mohan, J. Appl. Phys. 89, 5815 (2001).
	-- Recommended binary value for GaAs.

	local enabled = true
	local value = 6.98

	return value, enabled
end

Luttinger parameter gamma2 (material.gamma2)

function material.gamma2(state)
	-- Luttinger parameter gamma2
	-- Units: dimensionless
	--
	-- Reference:
	-- Vurgaftman, Meyer, Ram-Mohan, J. Appl. Phys. 89, 5815 (2001).
	-- Recommended binary value for GaAs.

	local enabled = true
	local value = 2.06

	return value, enabled
end

Luttinger parameter gamma3 (material.gamma3)

function material.gamma3(state)
	-- Luttinger parameter gamma3
	-- Units: dimensionless
	--
	-- Reference:
	-- Vurgaftman, Meyer, Ram-Mohan, J. Appl. Phys. 89, 5815 (2001).
	-- Recommended binary value for GaAs.

	local enabled = true
	local value = 2.93

	return value, enabled
end

Optical absorption coefficient (material.ac)

function material.ac(state)
	-- Conduction-band hydrostatic deformation potential a_c
	-- Units: eV
	--
	-- Reference:
	-- Vurgaftman, Meyer, Ram-Mohan, J. Appl. Phys. 89, 5815 (2001).
	-- Recommended binary value for GaAs.
	--
	-- Note:
	-- 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.

	local enabled = true
	local value = -7.17

	return value, enabled
end

Optical absorption / extinction parameter (material.av)

function material.av(state)
	-- Valence-band hydrostatic deformation potential a_v
	-- Units: eV
	--
	-- Reference:
	-- Vurgaftman, Meyer, Ram-Mohan, J. Appl. Phys. 89, 5815 (2001).
	-- Recommended binary value for GaAs.
	--
	-- Note:
	-- 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.

	local enabled = true
	local value = 1.16

	return value, enabled
end

Recombination parameter b (material.b)

function material.b(state)
	-- Valence-band shear (tetragonal) deformation potential b
	-- Units: eV
	--
	-- Reference:
	-- Vurgaftman, Meyer, Ram-Mohan, J. Appl. Phys. 89, 5815 (2001).
	-- Recommended binary value for GaAs.
	--
	-- Note:
	-- Sign convention as in VMR (b negative). Sign preserved; not flipped.

	local enabled = true
	local value = -2

	return value, enabled
end

Material parameter d (material.d)

function material.d(state)
	-- Valence-band shear (rhombohedral) deformation potential d
	-- Units: eV
	--
	-- Reference:
	-- Vurgaftman, Meyer, Ram-Mohan, J. Appl. Phys. 89, 5815 (2001).
	-- Recommended binary value for GaAs.
	--
	-- Note:
	-- Sign convention as in VMR (d negative). Sign preserved; not flipped.

	local enabled = true
	local value = -4.8

	return value, enabled
end

Lattice constant a (material.lattice_a)

function material.lattice_a(state)
	-- Cubic (zincblende) lattice constant a
	-- Units: m
	--
	-- Reference:
	-- Vurgaftman, Meyer, Ram-Mohan, J. Appl. Phys. 89, 5815 (2001).
	-- Recommended binary value for GaAs.
	-- a(300K)=5.65325 Angstrom, da/dT=3.88e-05 Angstrom/K.
	-- Linear thermal expansion: a(T)=a300+da/dT*(T-300).

	local enabled = true
	local T = state.T
	local value = (5.65325 + 3.88e-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:
	-- Vurgaftman, Meyer, Ram-Mohan, J. Appl. Phys. 89, 5815 (2001).
	-- Recommended binary value for GaAs.
	-- C11=122.1 GPa, converted to Pa.

	local enabled = true
	local value = 122.1e9

	return value, enabled
end

Elastic stiffness constant C12 (material.C12)

function material.C12(state)
	-- Elastic stiffness constant C12
	-- Units: Pa
	--
	-- Reference:
	-- Vurgaftman, Meyer, Ram-Mohan, J. Appl. Phys. 89, 5815 (2001).
	-- Recommended binary value for GaAs.
	-- C12=56.6 GPa, converted to Pa.

	local enabled = true
	local value = 56.6e9

	return value, enabled
end

Elastic stiffness constant C44 (material.C44)

function material.C44(state)
    -- Elastic stiffness constant C44
    -- Units: Pa
    --
    -- Reference:
    -- Yu. A. Burenkov et al. (1973), ultrasonic temperature-dependent elastic
    -- constants of GaAs, as given (with the linear T-relation) in the Ioffe
    -- NSM archive (GaAs mechanical properties). Full bibliographic details
    -- were not independently verified.
    --
    -- Notes:
    -- C44(T) = (6.16 - 0.70e-3*T) x 1e11 dyn/cm^2 for 0 < T < 1513 K.
    -- Converted: C44(T) = 61.6e9 - 7.0e6*T Pa (1 dyn/cm^2 = 0.1 Pa).
    -- At 300 K: 59.5 GPa (Ioffe lists 59.6 GPa at 300 K).
    -- Cross-check: Vurgaftman et al., J. Appl. Phys. 89, 5815 (2001)
    -- (DOI 10.1063/1.1368156) recommend 600 kbar = 60.0 GPa, within 1%.
    -- The temperature-dependent form is kept because it is the only
    -- verified source of a genuine T dependence for this parameter.

    local enabled = true
    local T = state.T

    local value = 61.6e9 - 7.0e6*T

    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:
    -- J. L. T. Waugh and G. Dolling,
    -- "Crystal dynamics of gallium arsenide,"
    -- Phys. Rev. 132, 2410 (1963). (inelastic neutron scattering)
    -- DOI: 10.1103/PhysRev.132.2410
    --
    -- Notes:
    -- nu_LO(Gamma) = 8.55 THz -> 8.55 x 4.135667e-3 eV/THz = 0.03536 eV.

    local enabled = true
    local value = 0.03536

    return value, enabled
end

Static dielectric constant (material.epsilon_static)

function material.epsilon_static(state)
    -- Static relative dielectric constant (lattice + electronic)
    -- Dimensionless
    --
    -- Reference:
    -- 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/).
    --
    -- Notes:
    -- GaAs: eps_s = 12.9 (300 K).

    local enabled = true
    local value = 12.9

    return value, enabled
end

High-frequency dielectric constant (material.epsilon_inf)

function material.epsilon_inf(state)
    -- High-frequency (electronic) relative dielectric constant
    -- Dimensionless
    --
    -- Reference:
    -- 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/).
    --
    -- Notes:
    -- GaAs: eps_inf = 10.89 (300 K).

    local enabled = true
    local value = 10.89

    return value, enabled
end

Piezoelectric coefficient e14 (material.e14)

function material.e14(state)
    -- Zincblende piezoelectric stress coefficient e14
    -- Units: C m^-2
    --
    -- Reference:
    -- 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/).
    -- (magnitudes trace to G. Arlt and P. Quadflieg, phys. stat. sol. 25,
    -- 323 (1968)).
    --
    -- Notes:
    -- GaAs: e14 = -0.16 C/m^2.
    -- 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 value = -0.16

    return value, enabled
end

Electron acoustic deformation potential (material.D_ac_e)

function material.D_ac_e(state)
    -- Gamma-valley electron acoustic deformation potential
    -- Units: eV
    -- Reference: Adachi, J. Appl. Phys. 58, R1 (1985).
    -- DOI: 10.1063/1.336070

    local enabled = true
    local value = 6.8

    return value, enabled
end

Hole acoustic deformation potential (material.D_ac_h)

function material.D_ac_h(state)
    -- Hydrostatic valence-band deformation potential
    -- Units: eV
    -- Reference: Vurgaftman et al., J. Appl. Phys. 89, 5815 (2001).
    -- DOI: 10.1063/1.1368156
    -- Scalar longitudinal acoustic approximation; excludes shear coupling.

    local enabled = true
    local value = 1.16

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