a-Si material model
1. Introduction
This page contains the OghmaNano material model for a-Si (a-Si:H).
Hydrogenated amorphous silicon (a-Si:H)
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 = {}
-- =====================================================================
-- Hydrogenated amorphous silicon (a-Si:H).
--
-- IMPORTANT -- READ FIRST:
-- a-Si:H is NOT a crystalline semiconductor and is only crudely
-- described by a scalar (crystalline-style) material file. Its device
-- physics is governed by its DENSITY OF STATES, not by the scalars
-- below:
-- * exponential conduction- and valence-band TAILS (Urbach tails,
-- characteristic energies ~25 meV and ~45 meV respectively), which
-- control dispersive transport and trapping;
-- * a pool of amphoteric DANGLING-BOND defects (D+, D0, D-) near
-- mid-gap (Gaussian-like distributions), which dominate
-- recombination;
-- * light-induced defect creation (the Staebler-Wronski effect),
-- which raises the dangling-bond density under illumination.
--
-- These must be set up through OghmaNano's trap / DOS distribution
-- features. The scalars here are only a skeleton (mobility edges,
-- band-edge DOS, band mobilities) around which that DOS is built.
--
-- Because the material is amorphous, several crystalline conventions
-- are deliberately NOT used:
-- * the gap is a MOBILITY GAP with a weak, roughly LINEAR T
-- dependence (not Varshni);
-- * Nc, Nv and the mobilities are taken T-INDEPENDENT (the
-- (T/300)^1.5 and (300/T)^n crystalline scalings do not apply);
-- * there is NO lattice constant (see lattice_constant).
-- =====================================================================
Material name (material.name)
function material.name()
local enabled = true
return "a-Si", enabled
end
Material description (material.description)
function material.description()
local enabled = true
return "Hydrogenated amorphous silicon (a-Si:H)", enabled
end
Chemical formula (material.formula)
function material.formula()
local enabled = true
return "a-Si:H", enabled
end
Band gap energy (material.Eg)
function material.Eg(state)
-- Mobility gap
-- Units: eV
--
-- a-Si:H has no sharp band edges; the relevant transport gap is the
-- MOBILITY GAP between the conduction- and valence-band mobility
-- edges, ~1.8 eV for device-grade material. (The optical / Tauc gap
-- is smaller, ~1.7-1.75 eV; the two are not the same quantity.)
--
-- The mobility gap has only a weak, roughly LINEAR temperature
-- dependence (a Varshni form is not appropriate for an amorphous
-- solid). A coefficient of ~-3e-4 eV/K is used, referenced to
-- 300 K.
--
-- Note: the gap value depends on hydrogen content and deposition
-- conditions (more H -> wider gap); adjust to your material. The
-- band tails fill the gap exponentially and are NOT represented by
-- this single number.
local enabled = true
local T = state.T
local value = 1.80 - 3.0e-4*(T - 300.0)
return value, enabled
end
Deformation potential Xi (material.Xi)
function material.Xi(state)
-- Electron affinity
-- Units: eV
--
-- Reference:
-- a-Si:H device-modelling literature.
-- Representative value ~3.9 eV; the a-Si:H/c-Si band offsets in
-- heterojunction (SHJ) cells are better set from measured
-- alignments.
local enabled = true
local value = 3.9
return value, enabled
end
Electron effective mass (material.me)
function material.me(state)
local enabled = false
-- DISABLED: amorphous Si has no well-defined band curvature (mobility edges,
-- no k-space dispersion). A parabolic effective mass is not physical here.
local value = 0.0
return value, enabled
end
Hole effective mass (material.mh)
function material.mh(state)
local enabled = false
-- DISABLED: see me().
local value = 0.0
return value, enabled
end
Effective conduction-band density of states (material.Nc)
function material.Nc(state)
-- Effective conduction-band-edge density of states
-- Units: m^-3
--
-- Effective DOS at the conduction-band mobility edge,
-- ~2.5e20 cm^-3 = 2.5e26 m^-3 (a common a-Si:H device value).
--
-- Taken TEMPERATURE-INDEPENDENT: the crystalline (T/300)^1.5
-- parabolic-band scaling does not apply to an amorphous band edge.
-- The exponential conduction-band TAIL states below the mobility
-- edge are additional and are NOT counted here (set them via the
-- DOS/trap distribution).
local enabled = true
local value = 2.5e26
return value, enabled
end
Effective valence-band density of states (material.Nv)
function material.Nv(state)
-- Effective valence-band-edge density of states
-- Units: m^-3
--
-- Effective DOS at the valence-band mobility edge,
-- ~2.5e20 cm^-3 = 2.5e26 m^-3. Temperature-independent (see Nc).
-- The valence-band tail (broader than the conduction-band tail) is
-- additional and set via the DOS/trap distribution.
local enabled = true
local value = 2.5e26
return value, enabled
end
Electron mobility (material.mu_e)
function material.mu_e(state)
-- Band electron mobility
-- Units: m^2 V^-1 s^-1
--
-- Extended-state (band) electron mobility above the conduction
-- mobility edge, ~20 cm^2/V/s = 0.002 m^2/V/s.
--
-- IMPORTANT: this is the BAND mobility. The measured DRIFT mobility
-- of a-Si:H is far lower (~1 cm^2/V/s or below) and dispersive,
-- because carriers are repeatedly trapped and released by the band
-- tails. That trap-limited behaviour (and its thermally activated
-- temperature dependence) must come from the tail-state DOS, not
-- from this coefficient, which is therefore taken constant.
local enabled = true
local value = 0.002
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)
-- Band hole mobility
-- Units: m^2 V^-1 s^-1
--
-- Extended-state (band) hole mobility, ~5 cm^2/V/s
-- = 0.0005 m^2/V/s.
--
-- IMPORTANT: as for electrons, the drift hole mobility is much
-- lower and strongly dispersive (the valence-band tail is broad).
-- Constant band mobility used here; trapping handled via the DOS.
local enabled = true
local value = 0.0005
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
--
-- a-Si:H permittivity is close to crystalline Si, ~11.9.
local enabled = true
local value = 11.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
--
-- Nominal small value, ~1e-17 m^3/s.
--
-- IMPORTANT: band-to-band radiative recombination is NOT the
-- relevant channel in a-Si:H. Recombination is dominated by the
-- DANGLING-BOND defect states (see ss_srh_* and the note in the
-- header). This coefficient is provided only for template
-- completeness and is normally negligible.
local enabled = true
local value = 1.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
--
-- Nominal placeholder, ~1e-43 m^6/s. Auger is negligible in a-Si:H
-- devices (recombination is dangling-bond dominated).
local enabled = true
local value = 1.0e-43
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
--
-- Nominal placeholder, ~1e-43 m^6/s. Negligible in a-Si:H.
local enabled = true
local value = 1.0e-43
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 mobility gap.
-- Units: eV
--
-- The dominant a-Si:H recombination centres are the dangling bonds,
-- which sit near mid-gap; 0.0 (mid-gap) is used here.
--
-- IMPORTANT: real a-Si:H dangling bonds are AMPHOTERIC (D+, D0, D-)
-- with correlation energy, distributed (not a single level). A
-- single mid-gap trap is a crude proxy; use the full defect-pool /
-- DOS description for quantitative work.
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 (dangling-bond proxy)
-- Units: m^-3
--
-- Representative dangling-bond density for annealed device-grade
-- a-Si:H, ~1e16 cm^-3 = 1e22 m^-3.
--
-- IMPORTANT: this is the KEY recombination parameter for a-Si:H.
-- The dangling-bond density ranges from ~1e15 cm^-3 (best annealed)
-- to ~1e17 cm^-3 (light-soaked / degraded via the Staebler-Wronski
-- effect). Together with the band tails it controls the device.
-- Set it (and the full defect distribution) from your material and
-- degradation state; do not rely on this single placeholder.
local enabled = true
local value = 1.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
--
-- Representative value ~1e-15 cm^2 = 1e-19 m^2. (Charged dangling
-- bonds have larger cross sections than neutral ones; a single
-- value is a simplification.)
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
--
-- a-Si:H has a VERY low thermal conductivity, ~1.5 W/m/K, roughly
-- two orders of magnitude below crystalline Si (~148 W/m/K),
-- because the disordered network scatters phonons strongly.
--
-- Taken TEMPERATURE-INDEPENDENT: amorphous thermal conductivity is
-- nearly flat (slightly rising) with temperature above ~100 K,
-- unlike the (300/T) decrease of crystalline solids.
local enabled = true
local value = 1.5
return value, enabled
end
Specific heat capacity (material.heat_capacity)
function material.heat_capacity(state)
-- Specific heat capacity
-- Units: J kg^-1 K^-1
--
-- Close to crystalline Si, ~700 J/kg/K.
local enabled = true
local value = 700.0
return value, enabled
end
Mass density (material.density)
function material.density(state)
-- Mass density
-- Units: kg m^-3
--
-- a-Si:H is slightly less dense than crystalline Si (network
-- disorder plus incorporated hydrogen), ~2200 kg/m^3
-- (cf. c-Si 2329 kg/m^3). Depends on H content and deposition.
local enabled = true
local value = 2200.0
return value, enabled
end
Crystal lattice constant (material.lattice_constant)
function material.lattice_constant(state)
-- Lattice constant
-- Units: m
--
-- NOT PHYSICALLY MEANINGFUL: a-Si:H is amorphous and has no
-- long-range order, hence no lattice constant. (It retains only
-- short-range order -- a Si-Si bond length ~2.35 A similar to
-- crystalline Si.)
--
-- A nominal value equal to the crystalline-Si lattice constant
-- (5.431 A) is returned ONLY so the field is populated for template
-- compatibility. It should not be used for any strain / epitaxy
-- calculation. No thermal expansion is applied.
local enabled = true
local value = 5.431e-10
return value, enabled
end
Electron thermal relaxation time (material.thermal_tau_e)
function material.thermal_tau_e(state)
-- Electron energy relaxation time towards the lattice temperature
-- Units: s
--
-- Value basis: Conventional semiconductor estimate
-- Confidence: Medium
--
-- Reference:
-- https://doi.org/10.1109/16.381985
--
-- Comments:
-- Representative sub-ps energy relaxation for a conventional semiconductor
-- near room temperature. Actual value is field and carrier-energy
-- dependent.
local enabled = true
local value = 3.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: Conventional semiconductor estimate
-- Confidence: Medium
--
-- Reference:
-- https://doi.org/10.1109/16.381985
--
-- Comments:
-- Representative sub-ps energy relaxation for a conventional semiconductor
-- near room temperature. Actual value is field and carrier-energy
-- dependent.
local enabled = true
local value = 3.000000e-13
return value, enabled
end
Lattice constant a (material.lattice_a)
function material.lattice_a(state)
-- Lattice constant, a-axis
-- Units: m
--
-- Reference (crystalline-Si reference value used as a convention):
-- O. Madelung, "Semiconductors: Data Handbook," 3rd ed.,
-- Springer (2004), DOI: 10.1007/978-3-642-18865-7.
-- Crystalline (diamond-cubic) Si a = 5.43102 Angstrom at ~300 K
-- (this is also the internationally used silicon X-ray lattice
-- length standard).
--
-- Notes:
-- Amorphous silicon has NO true long-range crystallographic lattice
-- constant; it possesses only short-range order (nearest-neighbour
-- Si-Si distance ~2.35 Angstrom, as in c-Si). A single "lattice_a"
-- is therefore not physically defined for a-Si. For solver
-- compatibility and lattice-mismatch bookkeeping we adopt the
-- crystalline-Si cubic lattice constant as a practical convention.
-- IMPORTANT: a-Si layers are normally amorphous and relaxed, so
-- pseudomorphic strain computed against a crystalline substrate is
-- not physically meaningful in the usual epitaxial sense. Treat any
-- strain result involving this layer with caution.
-- Value basis: crystalline-Si reference (convention).
-- Confidence: not applicable (a-Si has no intrinsic a).
local enabled = true
local value = 5.43102e-10
return value, enabled
end
Elastic stiffness constant C11 (material.C11)
function material.C11(state)
-- Elastic stiffness constant C11
-- Units: Pa
--
-- No sufficiently reliable value/reference identified.
-- Disabled rather than estimated.
--
-- Notes:
-- Amorphous Si: no crystal symmetry, so C11/C12/C44 reduce to isotropic
-- moduli that depend strongly on hydrogen content and deposition; there is
-- no Gamma-point LO phonon and no Frohlich coupling (non-polar). Values
-- are sample-dependent; none verified as a defensible default.
local enabled = false
local value = 0.0
return value, enabled
end
Elastic stiffness constant C12 (material.C12)
function material.C12(state)
-- Elastic stiffness constant C12
-- Units: Pa
--
-- No sufficiently reliable value/reference identified.
-- Disabled rather than estimated.
--
-- Notes:
-- Amorphous Si: no crystal symmetry, so C11/C12/C44 reduce to isotropic
-- moduli that depend strongly on hydrogen content and deposition; there is
-- no Gamma-point LO phonon and no Frohlich coupling (non-polar). Values
-- are sample-dependent; none verified as a defensible default.
local enabled = false
local value = 0.0
return value, enabled
end
Elastic stiffness constant C44 (material.C44)
function material.C44(state)
-- Elastic stiffness constant C44
-- Units: Pa
--
-- No sufficiently reliable value/reference identified.
-- Disabled rather than estimated.
--
-- Notes:
-- Amorphous Si: no crystal symmetry, so C11/C12/C44 reduce to isotropic
-- moduli that depend strongly on hydrogen content and deposition; there is
-- no Gamma-point LO phonon and no Frohlich coupling (non-polar). Values
-- are sample-dependent; none verified as a defensible default.
local enabled = false
local value = 0.0
return value, enabled
end
Electron acoustic deformation potential (material.D_ac_e)
function material.D_ac_e(state)
-- Effective scalar acoustic deformation potential for electrons
-- Units: eV
--
-- No sufficiently reliable value/reference identified.
-- Disabled rather than estimated.
--
-- Notes:
-- Amorphous Si: no crystal symmetry, so C11/C12/C44 reduce to isotropic
-- moduli that depend strongly on hydrogen content and deposition; there is
-- no Gamma-point LO phonon and no Frohlich coupling (non-polar). Values
-- are sample-dependent; none verified as a defensible default.
local enabled = false
local value = 0.0
return value, enabled
end
Hole acoustic deformation potential (material.D_ac_h)
function material.D_ac_h(state)
-- Effective scalar acoustic deformation potential for holes
-- Units: eV
--
-- No sufficiently reliable value/reference identified.
-- Disabled rather than estimated.
--
-- Notes:
-- Amorphous Si: no crystal symmetry, so C11/C12/C44 reduce to isotropic
-- moduli that depend strongly on hydrogen content and deposition; there is
-- no Gamma-point LO phonon and no Frohlich coupling (non-polar). Values
-- are sample-dependent; none verified as a defensible default.
local enabled = false
local value = 0.0
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:
-- Amorphous Si: no crystal symmetry, so C11/C12/C44 reduce to isotropic
-- moduli that depend strongly on hydrogen content and deposition; there is
-- no Gamma-point LO phonon and no Frohlich coupling (non-polar). Values
-- are sample-dependent; none verified as a defensible default.
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
--
-- No sufficiently reliable value/reference identified.
-- Disabled rather than estimated.
--
-- Notes:
-- Amorphous Si: no crystal symmetry, so C11/C12/C44 reduce to isotropic
-- moduli that depend strongly on hydrogen content and deposition; there is
-- no Gamma-point LO phonon and no Frohlich coupling (non-polar). Values
-- are sample-dependent; none verified as a defensible default.
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:
-- Amorphous Si: no crystal symmetry, so C11/C12/C44 reduce to isotropic
-- moduli that depend strongly on hydrogen content and deposition; there is
-- no Gamma-point LO phonon and no Frohlich coupling (non-polar). Values
-- are sample-dependent; none verified as a defensible default.
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("Mobility gap: %.6f eV", material.Eg(state)))
print(string.format("Electron affinity: %.6f eV", material.Xi(state)))
print(string.format("Band electron mobility: %.6e m^2/V/s", material.mu_e(state)))
print(string.format("Band hole mobility: %.6e m^2/V/s", material.mu_h(state)))
print(string.format("Nc (mobility edge): %.6e m^-3", material.Nc(state)))
print(string.format("Nv (mobility edge): %.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("Dangling-bond energy: %.6f eV", material.ss_srh_trap_energy(state)))
print(string.format("Dangling-bond 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.
-- ============================================================================