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

ZnSe material model

1. Introduction

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

Bulk zinc-blende zinc selenide

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 ZnSe (read before using):
--
-- ZnSe is a wide-gap (~2.7 eV) direct II-VI semiconductor, zinc-blende,
-- used in blue-green optoelectronics and IR optics. Provenance differs from
-- the III-V files: the Ioffe NSM archive does NOT cover the II-VI binaries,
-- so these values come from the standard II-VI compilations (Madelung's Data
-- Handbook, Adachi) plus specific papers. Expect more scatter than for the
-- III-Vs, especially in the hole mass, mobilities and recombination
-- coefficients. ZnSe is also naturally n-type and hard to dope p-type
-- (self-compensation), which is a device-level constraint, not a parameter.
--
-- 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); optical/thermal values also from S. Adachi & T. Taguchi,
--      Phys. Rev. B 43, 9569 (1991).
-- [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]
-- [4]  M. Aven, "High electron mobility in zinc selenide through
--      low-temperature annealing", J. Appl. Phys. 42, 1204 (1971). [mobility]
--
-- Nc and Nv here 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 hole mass (hence Nv) is the least certain input.
-- ---------------------------------------------------------------------------

Material name (material.name)

function material.name()
	local enabled = true

	return "ZnSe", enabled
end

Material description (material.description)

function material.description()
	local enabled = true

	return "Bulk zinc-blende zinc selenide", enabled
end

Chemical formula (material.formula)

function material.formula()
	local enabled = true

	return "ZnSe", enabled
end

Band gap energy (material.Eg)

function material.Eg(state)
	-- Units: eV
	-- Refs: [1],[3]; Varshni form [3]
	--
	-- Varshni form: Eg(0) = 2.82 eV, alpha = 5.5e-4 eV/K, beta = 187 K,
	-- giving Eg(300 K) = 2.72 eV (accepted room-temperature gap ~2.70 eV).
	-- Note: II-VI Varshni parameters vary noticeably between sources
	-- (unlike the standardised III-V set); these reproduce the accepted
	-- 300 K value and the measured dEg/dT ~ -5e-4 eV/K.

	local enabled = true
	local T = state.T
	local value = 2.82 - 5.5e-4*T*T/(T + 187.0)

	return value, enabled
end

Deformation potential Xi (material.Xi)

function material.Xi(state)
	-- Electron affinity
	-- Units: eV
	-- Refs: [1],[2]
	--
	-- ~4.09 eV. II-VI electron affinities carry scatter (reported
	-- ~4.0-4.2 eV for ZnSe); it sets the heterojunction band offset.

	local enabled = true
	local value = 4.09

	return value, enabled
end

Electron effective mass (material.me)

function material.me(state)
    local enabled = true
    local value = 0.15    -- 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; literature spread 0.5-0.8 (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.15 m0 [1],[2]
	--
	-- Nc = 2.509e25*(0.15)^1.5*(T/300)^1.5 = 1.5e24 m^-3 at 300 K
	-- (1.5e18 cm^-3).

	local enabled = true
	local T = state.T
	local value = 1.5e24*(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.75 m0 [1],[2]
	--
	-- Nv = 2.509e25*(0.75)^1.5*(T/300)^1.5 = 1.6e25 m^-3 at 300 K
	-- (1.6e19 cm^-3). The DOS hole mass is uncertain, so treat Nv as
	-- the softer of the two.

	local enabled = true
	local T = state.T
	local value = 1.6e25*(T/300.0)^1.5

	return value, enabled
end

Electron mobility (material.mu_e)

function material.mu_e(state)
	-- Low-field electron mobility
	-- Units: m^2 V^-1 s^-1
	-- Refs: [1],[2],[4]
	--
	-- ~500 cm^2/V/s = 0.05 m^2/V/s at 300 K (single crystal). The
	-- (300/T)^1.5 factor is an approximate lattice-limited dependence;
	-- polar-optical-phonon scattering dominates near 300 K and real
	-- (especially polycrystalline / thin-film) material is lower.

	local enabled = true
	local T = state.T
	local value = 0.05*(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]
	--
	-- ~30 cm^2/V/s = 0.003 m^2/V/s at 300 K (reported ~30-110;
	-- poorly constrained). (300/T)^1.5 approximate lattice-limited.

	local enabled = true
	local T = state.T
	local value = 0.003*(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 9.1 (high-frequency 6.3).

	local enabled = true
	local value = 9.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 ZnSe; treat as a placeholder and 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 value ~1e-30 cm^6/s = 1e-42 m^6/s. Auger is
	-- weak in a wide-gap material like ZnSe 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 ZnSe.

	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. ZnSe photophysics is
	-- strongly affected by native defects and self-compensation; 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]
	--
	-- ~19 W/m/K (0.19 W/cm/K) at 300 K [2]; first-principles/FDTR work
	-- gives ~23 W/m/K for isotopically natural single crystal, so treat
	-- 19-23 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 = 19.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]
	--
	-- ~340 J/kg/K near 300 K (0.34 J/g/K), consistent with the
	-- Dulong-Petit limit for ZnSe (M = 144.3 g/mol).

	local enabled = true
	local value = 340.0

	return value, enabled
end

Mass density (material.density)

function material.density(state)
	-- Mass density
	-- Units: kg m^-3
	-- Refs: [1]
	--
	-- 5.27 g/cm^3 (crystallographic: Z = 4, M = 144.34 g/mol,
	-- a = 5.668 A).

	local enabled = true
	local value = 5270.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) = 5.668 A [1]. Linear thermal expansion ~7.6e-6 /K.

	local enabled = true
	local T = state.T
	local a300 = 5.668e-10
	local expansion = 7.6e-6
	local value = a300*(1.0 + expansion*(T - 300.0))

	return value, enabled
end

Electron thermal relaxation time (material.thermal_tau_e)

function material.thermal_tau_e(state)
	-- Electron energy relaxation time towards the lattice temperature
	-- Units: s
	--
	-- Value basis: 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 ZnSe.

	local enabled = true
	local value = 0.43

	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 ZnSe.
	-- a=5.6676 Angstrom (room temperature).
	--
	-- Note:
	-- Room-temperature constant used; no reliable da/dT applied here.

	local enabled = true
	local value = 5.6676*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 ZnSe.
	-- C11=85.9 GPa, converted to Pa.

	local enabled = true
	local value = 85.9e9

	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 ZnSe.
	-- C12=50.6 GPa, converted to Pa.

	local enabled = true
	local value = 50.6e9

	return value, enabled
end

Elastic stiffness constant C44 (material.C44)

function material.C44(state)
    -- Elastic stiffness constant C44
    -- Units: Pa
    --
    -- Reference:
    -- B. H. Lee, J. Appl. Phys. 41, 2988 (1970) (ultrasonic, ZnSe), 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:
    -- 4.06e11 dyn/cm^2 = 40.6 GPa -> 40.6e9 Pa (room temperature).
    -- Brillouin on ZnSe/GaAs films: 39.1 GPa (consistent within 4%).

    local enabled = true
    local value = 40.6e9

    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) = 252 cm^-1 -> 252 x 1.239842e-4 = 0.03124 eV.
    -- Neutron (Hennion et al. 1971, via Gopal et al.) gives 254 cm^-1.

    local enabled = true
    local value = 0.03124

    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 = 5.75*(252/206)^2 = 8.60.
    -- H. D. Riccius (1968), "Infrared lattice vibrations of zinc selenide and
    -- zinc telluride", reports 9.2 via LST from his own IR LO/TO; the spread
    -- reflects LO/TO uncertainty. The self-consistent set is preferred here.

    local enabled = true
    local value = 8.60

    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 = 5.75. Gopal et al. (arXiv:1505.05245) list experimental 5.70.

    local enabled = true
    local value = 5.75

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