ZnTe material model
1. Introduction
This page contains the OghmaNano material model for ZnTe (ZnTe).
Bulk zinc-blende zinc telluride
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 = {}
-- ---------------------------------------------------------------------------
-- NOTES ON ZnTe (read before using):
--
-- ZnTe is a direct ~2.26 eV II-VI semiconductor, zinc-blende, used in green
-- emitters, THz generation/detection, and as a p-type back contact for CdTe.
-- Unusually among the zinc chalcogenides it is naturally p-type and hard to
-- dope n-type. Not in the Ioffe NSM archive, so values are from Madelung's
-- Data Handbook and Adachi plus specific papers, with more scatter than the
-- III-Vs.
--
-- DENSITY NOTE: the crystallographic density is 5.64 g/cm^3 (from a = 6.104 A,
-- M = 192.98 g/mol, Z = 4). Several secondary sources quote 6.34 g/cm^3, which
-- is inconsistent with the well-established lattice constant (the same
-- calculation reproduces the accepted ZnSe = 5.27 and ZnS = 4.09 densities
-- exactly). The value 5.64 g/cm^3 is used here.
--
-- REFERENCES
--
-- [1] O. Madelung (ed.), "Semiconductors: Data Handbook", 3rd ed.,
-- Springer (2004). [primary II-VI data compilation]
-- [2] S. Adachi, "Properties of Group-IV, III-V and II-VI Semiconductors",
-- Wiley (2005).
-- [3] R. Passler et al., "Temperature dependence of exciton peak energies in
-- ZnS, ZnSe, and ZnTe epitaxial films", J. Appl. Phys. (1999).
-- [Eg(T) / Varshni analysis]
--
-- Nc and Nv are COMPUTED from density-of-states effective masses via
-- N = 2.509e25 * (m*/m0)^1.5 * (T/300)^1.5 m^-3, not directly tabulated;
-- the effective masses (hence Nc, Nv) carry scatter.
-- ---------------------------------------------------------------------------
Material name (material.name)
function material.name()
local enabled = true
return "ZnTe", enabled
end
Material description (material.description)
function material.description()
local enabled = true
return "Bulk zinc-blende zinc telluride", enabled
end
Chemical formula (material.formula)
function material.formula()
local enabled = true
return "ZnTe", enabled
end
Band gap energy (material.Eg)
function material.Eg(state)
-- Units: eV
-- Refs: [1],[3]; Varshni form [3]
--
-- Varshni form: Eg(0) = 2.394 eV, alpha = 6.0e-4 eV/K, beta = 180 K,
-- giving Eg(300 K) = 2.28 eV (accepted room-temperature gap
-- ~2.26-2.28 eV). II-VI Varshni parameters vary between sources;
-- these reproduce the accepted 300 K value and dEg/dT ~ -4.5e-4 eV/K.
local enabled = true
local T = state.T
local value = 2.394 - 6.0e-4*T*T/(T + 180.0)
return value, enabled
end
Deformation potential Xi (material.Xi)
function material.Xi(state)
-- Electron affinity
-- Units: eV
-- Refs: [1],[2]
--
-- ~3.53 eV (reported ~3.5-3.65 eV). The relatively small electron
-- affinity underlies ZnTe's use as a hole contact / p-type layer.
local enabled = true
local value = 3.53
return value, enabled
end
Electron effective mass (material.me)
function material.me(state)
local enabled = true
local value = 0.12 -- Gamma electron mass (Adachi 2005)
return value, enabled
end
Hole effective mass (material.mh)
function material.mh(state)
local enabled = true
local value = 0.60 -- HH curvature (Adachi 2005)
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
-- Refs: computed from m_e* = 0.20 m0 [1],[2]
--
-- Nc = 2.509e25*(0.20)^1.5*(T/300)^1.5 = 2.2e24 m^-3 at 300 K
-- (2.2e18 cm^-3). The electron mass is reported in the range
-- ~0.12-0.2 m0, so Nc is uncertain to a factor of ~2.
local enabled = true
local T = state.T
local value = 2.2e24*(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
-- Refs: computed from m_h(DOS) ~ 0.65 m0 [1],[2]
--
-- Nv = 2.509e25*(0.65)^1.5*(T/300)^1.5 = 1.3e25 m^-3 at 300 K
-- (1.3e19 cm^-3).
local enabled = true
local T = state.T
local value = 1.3e25*(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
-- Refs: [1],[2]
--
-- ~330 cm^2/V/s = 0.033 m^2/V/s at 300 K (single crystal). The
-- (300/T)^1.5 factor is an approximate lattice-limited dependence;
-- real (especially thin-film) material is lower. n-type ZnTe is
-- hard to achieve, so electron transport data are limited.
local enabled = true
local T = state.T
local value = 0.033*(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
-- Refs: [1],[2]
--
-- ~100 cm^2/V/s = 0.01 m^2/V/s at 300 K. ZnTe is naturally p-type,
-- so hole transport is comparatively well characterised for a II-VI.
-- (300/T)^1.5 approximate lattice-limited dependence.
local enabled = true
local T = state.T
local value = 0.01*(300.0/T)^1.5
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
-- Refs: [1],[2]
--
-- Static 10.1 (high-frequency 7.3).
local enabled = true
local value = 10.1
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
-- Refs: representative (see note)
--
-- Representative direct-gap value ~1e-10 cm^3/s = 1e-16 m^3/s.
-- Not well tabulated for ZnTe; placeholder, refine against measured
-- lifetimes.
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
-- Refs: representative (see note)
--
-- Small representative ~1e-30 cm^6/s = 1e-42 m^6/s. Auger is weak in
-- this wide-gap material and normally negligible.
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
-- Refs: representative (see note)
--
-- As auger_Cn: representative 1e-30 cm^6/s = 1e-42 m^6/s, normally
-- negligible in wide-gap ZnTe.
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).
--
-- Defect-dependent, not an intrinsic constant. Set the level and
-- density from your own DLTS / lifetime data. Mid-gap is a neutral
-- default.
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
--
-- Defect-dependent placeholder; set from the intended material
-- quality.
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
--
-- Defect-dependent placeholder; set from measurement.
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
--
-- Defect-dependent placeholder; set from measurement.
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
-- Refs: [2]
--
-- ~11 W/m/K (0.11 W/cm/K) at 300 K [2]; first-principles/FDTR work
-- gives ~14 W/m/K for isotopically natural single crystal, so treat
-- 11-14 as the single-crystal range. The (300/T)^1.0 factor is the
-- usual phonon-Umklapp scaling; polycrystalline films are lower.
local enabled = true
local T = state.T
local value = 11.0*(300.0/T)^1.0
return value, enabled
end
Specific heat capacity (material.heat_capacity)
function material.heat_capacity(state)
-- Specific heat capacity
-- Units: J kg^-1 K^-1
-- Refs: [1],[2]
--
-- ~260 J/kg/K near 300 K (0.26 J/g/K), consistent with the
-- Dulong-Petit limit for ZnTe (M = 192.98 g/mol).
local enabled = true
local value = 260.0
return value, enabled
end
Mass density (material.density)
function material.density(state)
-- Mass density
-- Units: kg m^-3
-- Refs: [1]; see DENSITY NOTE in header
--
-- 5.64 g/cm^3 (crystallographic: Z = 4, M = 192.98 g/mol,
-- a = 6.104 A). NOT 6.34 g/cm^3 (a common but inconsistent value).
local enabled = true
local value = 5640.0
return value, enabled
end
Crystal lattice constant (material.lattice_constant)
function material.lattice_constant(state)
-- Cubic lattice constant
-- Units: m
-- Refs: [1],[2]
--
-- a(300 K) = 6.104 A [1]. Linear thermal expansion ~8.3e-6 /K.
local enabled = true
local T = state.T
local a300 = 6.104e-10
local expansion = 8.3e-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: II-VI family estimate
-- Confidence: Low
--
-- Reference:
-- https://doi.org/10.1109/16.381985
--
-- Comments:
-- II-VI family default. Direct carrier-specific hydrodynamic parameters are
-- scarce; use sensitivity analysis.
local enabled = true
local value = 1.000000e-12
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: II-VI family estimate
-- Confidence: Low
--
-- Reference:
-- https://doi.org/10.1109/16.381985
--
-- Comments:
-- II-VI family default. Direct carrier-specific hydrodynamic parameters are
-- scarce; use sensitivity analysis.
local enabled = true
local value = 1.000000e-12
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:
-- Adachi, Properties of Group-IV, III-V and II-VI Semiconductors
-- (Wiley, 2005); Landolt-Boernstein III/41B. Zincblende ZnTe.
local enabled = true
local value = 0.97
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:
-- No sufficiently reliable value identified for this material/parameter.
--
-- Note:
-- Disabled rather than estimating an unsupported value.
local enabled = false
local value = 0.0
return value, enabled
end
Luttinger parameter gamma1 (material.gamma1)
function material.gamma1(state)
-- Luttinger parameter gamma1
-- Units: dimensionless
--
-- Reference:
-- No sufficiently reliable value identified for this material/parameter.
--
-- Note:
-- Disabled rather than estimating an unsupported value.
local enabled = false
local value = 0.0
return value, enabled
end
Luttinger parameter gamma2 (material.gamma2)
function material.gamma2(state)
-- Luttinger parameter gamma2
-- Units: dimensionless
--
-- Reference:
-- No sufficiently reliable value identified for this material/parameter.
--
-- Note:
-- Disabled rather than estimating an unsupported value.
local enabled = false
local value = 0.0
return value, enabled
end
Luttinger parameter gamma3 (material.gamma3)
function material.gamma3(state)
-- Luttinger parameter gamma3
-- Units: dimensionless
--
-- Reference:
-- No sufficiently reliable value identified for this material/parameter.
--
-- Note:
-- Disabled rather than estimating an unsupported value.
local enabled = false
local value = 0.0
return value, enabled
end
Optical absorption coefficient (material.ac)
function material.ac(state)
-- Conduction-band hydrostatic deformation potential a_c
-- Units: eV
--
-- Reference:
-- No sufficiently reliable value identified for this material/parameter.
--
-- Note:
-- Disabled rather than estimating an unsupported value.
local enabled = false
local value = 0.0
return value, enabled
end
Optical absorption / extinction parameter (material.av)
function material.av(state)
-- Valence-band hydrostatic deformation potential a_v
-- Units: eV
--
-- Reference:
-- No sufficiently reliable value identified for this material/parameter.
--
-- Note:
-- Disabled rather than estimating an unsupported value.
local enabled = false
local value = 0.0
return value, enabled
end
Recombination parameter b (material.b)
function material.b(state)
-- Valence-band shear (tetragonal) deformation potential b
-- Units: eV
--
-- Reference:
-- No sufficiently reliable value identified for this material/parameter.
--
-- Note:
-- Disabled rather than estimating an unsupported value.
local enabled = false
local value = 0.0
return value, enabled
end
Material parameter d (material.d)
function material.d(state)
-- Valence-band shear (rhombohedral) deformation potential d
-- Units: eV
--
-- Reference:
-- No sufficiently reliable value identified for this material/parameter.
--
-- Note:
-- Disabled rather than estimating an unsupported value.
local enabled = false
local value = 0.0
return value, enabled
end
Lattice constant a (material.lattice_a)
function material.lattice_a(state)
-- Cubic (zincblende) lattice constant a
-- Units: m
--
-- Reference:
-- Adachi, Properties of Group-IV, III-V and II-VI Semiconductors
-- (Wiley, 2005); Landolt-Boernstein III/41B. Zincblende ZnTe.
-- a=6.1037 Angstrom (room temperature).
--
-- Note:
-- Room-temperature constant used; no reliable da/dT applied here.
local enabled = true
local value = 6.1037*1e-10
return value, enabled
end
Elastic stiffness constant C11 (material.C11)
function material.C11(state)
-- Elastic stiffness constant C11
-- Units: Pa
--
-- Reference:
-- Adachi, Properties of Group-IV, III-V and II-VI Semiconductors
-- (Wiley, 2005); Landolt-Boernstein III/41B. Zincblende ZnTe.
-- C11=71.3 GPa, converted to Pa.
local enabled = true
local value = 71.3e9
return value, enabled
end
Elastic stiffness constant C12 (material.C12)
function material.C12(state)
-- Elastic stiffness constant C12
-- Units: Pa
--
-- Reference:
-- Adachi, Properties of Group-IV, III-V and II-VI Semiconductors
-- (Wiley, 2005); Landolt-Boernstein III/41B. Zincblende ZnTe.
-- C12=40.7 GPa, converted to Pa.
local enabled = true
local value = 40.7e9
return value, enabled
end
Elastic stiffness constant C44 (material.C44)
function material.C44(state)
-- Elastic stiffness constant C44
-- Units: Pa
--
-- Reference:
-- D. Berlincourt, H. Jaffe, L. R. Shiozawa,
-- "Electroelastic properties of the sulfides, selenides, and tellurides
-- of zinc and cadmium,"
-- Phys. Rev. 129, 1009 (1963).
-- DOI: 10.1103/PhysRev.129.1009
-- measured value as tabulated in:
-- B. D. Rajput and D. A. Browne,
-- "Lattice dynamics of II-VI materials using adiabatic bond charge
-- model," arXiv:cond-mat/9510155, Table II (measured values in
-- parentheses, with original sources identified).
--
-- Notes:
-- 3.12e11 dyn/cm^2 = 31.2 GPa -> 31.2e9 Pa (room temperature).
local enabled = true
local value = 31.2e9
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:
-- "Unification of the phonon mode behaviour in semiconductor alloys:
-- Theory and ab initio calculations," arXiv:0709.0930
-- (pure-crystal input parameters: ZnSe eps_inf = 5.75, TO-LO =
-- 206-252 cm^-1; ZnTe eps_inf = 7.20, TO-LO = 176-206 cm^-1).
--
-- Notes:
-- LO(Gamma) = 206 cm^-1 -> 206 x 1.239842e-4 = 0.02554 eV.
-- Neutron (Vagelatos et al. 1974, via Gopal et al.): 204 cm^-1.
local enabled = true
local value = 0.02554
return value, enabled
end
Static dielectric constant (material.epsilon_static)
function material.epsilon_static(state)
-- Static relative dielectric constant (lattice + electronic)
-- Dimensionless
--
-- Derived (LST) from the same-source set:
-- "Unification of the phonon mode behaviour in semiconductor alloys:
-- Theory and ab initio calculations," arXiv:0709.0930
-- (pure-crystal input parameters: ZnSe eps_inf = 5.75, TO-LO =
-- 206-252 cm^-1; ZnTe eps_inf = 7.20, TO-LO = 176-206 cm^-1).
--
-- Notes:
-- eps_s = 7.20*(206/176)^2 = 9.86. Riccius (1968) reports 10.3 via LST.
local enabled = true
local value = 9.86
return value, enabled
end
High-frequency dielectric constant (material.epsilon_inf)
function material.epsilon_inf(state)
-- High-frequency (electronic) relative dielectric constant
-- Dimensionless
--
-- Reference:
-- "Unification of the phonon mode behaviour in semiconductor alloys:
-- Theory and ab initio calculations," arXiv:0709.0930
-- (pure-crystal input parameters: ZnSe eps_inf = 5.75, TO-LO =
-- 206-252 cm^-1; ZnTe eps_inf = 7.20, TO-LO = 176-206 cm^-1).
--
-- Notes:
-- eps_inf = 7.20 (Gopal et al. list experimental 7.2).
local enabled = true
local value = 7.20
return value, enabled
end
Piezoelectric coefficient e14 (material.e14)
function material.e14(state)
-- Zincblende piezoelectric stress coefficient e14
-- Units: C m^-2
--
-- No sufficiently reliable value/reference identified.
-- Disabled rather than estimated.
--
-- Notes:
-- No ZnTe e14 value/sign verified against a primary source.
local enabled = false
local value = 0.0
return value, enabled
end
Material parameter summary (material.print)
function material.print()
local state = {
T = 300.0,
x = 0.0,
y = 0.0,
z = 0.0,
photon_density = 0.0,
}
print(string.format("Material: %s", material.name()))
print(string.format("Description: %s", material.description()))
print(string.format("Formula: %s", material.formula()))
print(string.format("Temperature: %.2f K", state.T))
print(string.format("Position: %.6e, %.6e, %.6e m", state.x, state.y, state.z))
print(string.format("Photon density: %.6e m^-3", state.photon_density))
print(string.format("Band gap: %.6f eV", material.Eg(state)))
print(string.format("Electron affinity: %.6f eV", material.Xi(state)))
print(string.format("Electron mobility: %.6e m^2/V/s", material.mu_e(state)))
print(string.format("Hole mobility: %.6e m^2/V/s", material.mu_h(state)))
print(string.format("Nc: %.6e m^-3", material.Nc(state)))
print(string.format("Nv: %.6e m^-3", material.Nv(state)))
print(string.format("Relative permittivity: %.6f", material.epsilonr(state)))
print(string.format("Radiative coeff.: %.6e m^3/s", material.free_to_free_recombination(state)))
print(string.format("Electron Auger coeff.: %.6e m^6/s", material.auger_Cn(state)))
print(string.format("Hole Auger coeff.: %.6e m^6/s", material.auger_Cp(state)))
print(string.format("SRH trap energy: %.6f eV", material.ss_srh_trap_energy(state)))
print(string.format("SRH trap density: %.6e m^-3", material.ss_srh_Nt(state)))
print(string.format("SRH sigma n: %.6e m^2", material.ss_srh_sigma_n(state)))
print(string.format("SRH sigma p: %.6e m^2", material.ss_srh_sigma_p(state)))
print(string.format("Electron energy relax.: %.6e s", material.thermal_tau_e(state)))
print(string.format("Hole energy relax.: %.6e s", material.thermal_tau_h(state)))
print(string.format("Thermal conductivity: %.6e W/m/K", material.thermal_kl(state)))
print(string.format("Heat capacity: %.6e J/kg/K", material.heat_capacity(state)))
print(string.format("Mass density: %.6e kg/m^3", material.density(state)))
end
return material
-- ============================================================================
-- Copyright (C) 2026 The OghmaNano Project
-- All rights reserved.
--
-- This file is part of the OghmaNano Materials Model Library.
--
-- Website:
-- https://www.oghma-nano.com
--
-- Documentation and accuracy statement:
-- https://www.oghma-nano.com/manual/material-scripts.html
--
-- These material models are provided to support scientific research and
-- semiconductor device simulation. If you find them useful, please cite
-- OghmaNano where appropriate. Please do not redistribute these files or
-- incorporate them into other software or databases without permission.
-- ============================================================================