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

CIGS material model

1. Introduction

This page contains the OghmaNano material model for CIGS (Cu(In,Ga)Se2).

Cu(In,Ga)Se2 chalcopyrite absorber, x = Ga/(Ga+In) ~ 0.3

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 = {}

-- ---------------------------------------------------------------------------
-- IMPORTANT CONTEXT (read before using):
--
-- CIGS = Cu(In,Ga)Se2, a chalcopyrite thin-film absorber. Almost every
-- property depends on the Ga fraction x = Ga/(Ga+In), which is the main
-- design knob:
--   * x = 0  -> CuInSe2  (CIS), Eg ~ 1.01-1.04 eV
--   * x = 1  -> CuGaSe2  (CGS), Eg ~ 1.65-1.68 eV
--   * record devices use x ~ 0.3 (Eg ~ 1.15 eV), the composition modelled
--     here.
-- Real CIGS cells also use a graded Ga profile through the absorber, so the
-- band edges vary with position; a single-composition layer like this is the
-- ungraded approximation. The electronic values below are the widely used
-- Gloeckler-Fahrenbruch-Sites device baseline [1] at x ~ 0.3; the structural
-- and thermal values are anchored to the CuInSe2 end member with the Ga
-- correction noted. Recombination in devices is SRH-limited (bulk deep
-- defects + Cu-poor surface), not radiative/Auger.
--
-- REFERENCES
--
-- [1]  M. Gloeckler, A. L. Fahrenbruch, J. R. Sites, "Numerical modeling of
--      CIGS and CdTe solar cells: setting the baseline", Proc. 3rd World
--      Conf. Photovoltaic Energy Conversion (WCPEC-3), Osaka, Vol. 1,
--      491-494 (2003). [device baseline: eps_r, Nc, Nv, mu_n, mu_p, chi]
-- [2]  Widely used CIGS band-gap bowing relation,
--      Eg(x) = 1.010 + 0.626*x - 0.167*x*(1-x) eV, consistent with the
--      CIS/CGS end points and bowing b ~ 0.15-0.24 eV from experimental
--      compilations (e.g. Wei & Zunger; Alonso et al.).
-- [3]  T. Minoura et al., "Dielectric function of Cu(In,Ga)Se2-based
--      polycrystalline materials", J. Appl. Phys. 113, 063505 (2013).
--      [SE optical constants; near-linear Eg(x)]
-- [4]  CuInSe2 chalcopyrite lattice a = 5.776 A, c = 11.611 A, c/a = 2.01
--      (ICSD #86872; e.g. Jpn. J. Appl. Phys. 55, 04ES15 (2016)).
-- [5]  "Charting the lattice thermal conductivities of I-III-VI2 chalcopyrite
--      semiconductors", Chem. Mater. 34 (2022), and experimental CuInSe2
--      kappa (Rincon/Wasim). [thermal conductivity ~ single crystal]
-- [6]  I. Repins et al., "19.9%-efficient ZnO/CdS/CuInGaSe2 solar cell...",
--      Prog. Photovolt. 16, 235-239 (2008). [device/defect context]
-- [7]  S. Adachi, "Properties of Semiconductor Alloys: Group-IV, III-V and
--      II-VI Semiconductors", Wiley (2009). [general chalcopyrite compilation]
-- ---------------------------------------------------------------------------

Material name (material.name)

function material.name()
	local enabled = true

	return "CIGS", enabled
end

Material description (material.description)

function material.description()
	local enabled = true

	return "Cu(In,Ga)Se2 chalcopyrite absorber, x = Ga/(Ga+In) ~ 0.3", enabled
end

Chemical formula (material.formula)

function material.formula()
	local enabled = true

	return "Cu(In,Ga)Se2", enabled
end

Band gap energy (material.Eg)

function material.Eg(state)
	-- Units: eV
	-- Refs: [2] (bowing relation), [3]
	--
	-- Computed from the Ga fraction x via the standard bowing relation
	-- Eg(x) = 1.010 + 0.626*x - 0.167*x*(1-x) [2].
	-- x = 0.30 gives Eg = 1.163 eV (the modelled device composition).
	-- Change ga_fraction to retune the band gap; remember to update
	-- the electron affinity (Xi), lattice constant and density to the
	-- same x if you move far from 0.3.
	--
	-- Temperature dependence is deliberately omitted: the measured
	-- CIGS/CuInSe2 dEg/dT is weak (~ -2e-4 eV/K near 300 K) and, in
	-- devices, composition and Ga grading dominate over any Varshni
	-- phonon term.

	local enabled = true
	local ga_fraction = 0.30
	local x = ga_fraction
	local value = 1.010 + 0.626*x - 0.167*x*(1.0 - x)

	return value, enabled
end

Deformation potential Xi (material.Xi)

function material.Xi(state)
	-- Electron affinity
	-- Units: eV
	-- Refs: [1]
	--
	-- Gloeckler baseline value 4.5 eV at Eg ~ 1.15 eV (x ~ 0.3) [1].
	-- Note: chi is composition dependent - it falls as Ga (and hence
	-- Eg) rises, because most of the gap change is in the conduction
	-- band (CBM moves up). Reported CuInSe2 chi ~ 4.5-4.6 eV, dropping
	-- towards ~4.2 eV near x ~ 0.35. This sets the buffer (CdS)
	-- conduction-band offset ("spike"/"cliff"), so treat it as a key
	-- band-alignment / fitting parameter.

	local enabled = true
	local value = 4.5

	return value, enabled
end

Electron effective mass (material.me)

function material.me(state)
    local enabled = true
    local x = state.x     -- x = Ga fraction: CuInSe2 -> CuGaSe2 (VERIFY)
    -- CuInSe2 ~0.09 -> CuGaSe2 ~0.13. Ref: Persson JAP 107,053710(2010).
    local value = 0.09 + 0.04*x
    return value, enabled
end

Hole effective mass (material.mh)

function material.mh(state)
    local enabled = true
    -- WARNING: anisotropic multi-band VB; single scalar highly approximate.
    local value = 0.7
    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: [1]
	--
	-- Gloeckler baseline 2.2e18 cm^-3 at 300 K [1]. Standard T^1.5
	-- scaling applied.

	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: [1]
	--
	-- Gloeckler baseline 1.8e19 cm^-3 at 300 K [1]. Standard T^1.5
	-- scaling applied.

	local enabled = true
	local T = state.T
	local value = 1.8e25*(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]
	--
	-- Gloeckler baseline 100 cm^2/V/s = 0.01 m^2/V/s [1].
	-- Held constant: polycrystalline CIGS transport is limited by
	-- grain boundaries and potential fluctuations, not a clean phonon
	-- law, so a (300/T)^n factor would mislead.

	local enabled = true
	local value = 0.01

	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]
	--
	-- Gloeckler baseline 25 cm^2/V/s = 0.0025 m^2/V/s [1].
	-- CIGS is intrinsically p-type. Held constant, as for mu_e.

	local enabled = true
	local value = 0.0025

	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],[3]
	--
	-- Gloeckler baseline 13.6 [1], consistent with the CuInSe2
	-- dielectric response [3]. (Note this is markedly higher than
	-- kesterite CZTSe, ~8.6.)

	local enabled = true
	local value = 13.6

	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.
	-- Minor channel in practice: CIGS devices are SRH-limited (bulk
	-- deep defects and the Cu-poor/ordered-vacancy surface) [6].
	-- Placeholder.

	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)
	--
	-- Not well characterised for CIGS; representative ~1e-30 cm^6/s
	-- = 1e-42 m^6/s. Normally negligible relative to SRH at device
	-- injection levels.

	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.

	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
	-- Refs: [1],[6]
	--
	-- Positive values are above mid-gap (towards the conduction band).
	-- Negative values are below mid-gap (towards the valence band).
	--
	-- SRH is the dominant recombination path, so this block matters.
	-- CIGS baseline models place the limiting bulk defect near mid-gap
	-- [1]; physically the defect chemistry is dominated by Cu-related
	-- vacancies/antisites and the (2V_Cu + In_Cu) complex [6].
	-- Mid-gap (0.0) is the standard worst-case default; set from your
	-- own DLTS / admittance data.

	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
	--
	-- Representative device value ~1e15 cm^-3 = 1e21 m^-3. Good CIGS
	-- absorbers are higher quality than kesterites (diffusion lengths
	-- ~1-2 um, lifetimes ~1-100 ns), hence a lower default than CZTSe.
	-- This, with the cross sections below, sets the lifetime; a primary
	-- fitting parameter.

	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 deep-defect value ~1e-15 cm^2 = 1e-19 m^2.
	-- Defect-dependent; 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
	--
	-- Representative deep-defect value ~1e-15 cm^2 = 1e-19 m^2.
	-- Defect-dependent; 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: [5]
	--
	-- Single-crystal CuInSe2 value ~8.6 W/m/K at 300 K [5]. The
	-- (300/T)^1.0 factor is the usual phonon-Umklapp scaling above the
	-- Debye temperature.
	--
	-- Caveat: polycrystalline CIGS device films are substantially lower
	-- (often ~1-5 W/m/K) due to grain-boundary and alloy-disorder
	-- (In/Ga) phonon scattering; reduce accordingly for thin films.

	local enabled = true
	local T = state.T
	local value = 8.6*(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
	--
	-- ~300 J/kg/K near 300 K, consistent with the Dulong-Petit limit
	-- for CuInSe2 (M = 336 g/mol, 4 atoms/formula -> ~297 J/kg/K
	-- high-T limit). Weakly composition dependent (CuGaSe2 is lighter,
	-- ~340 J/kg/K).

	local enabled = true
	local value = 300.0

	return value, enabled
end

Mass density (material.density)

function material.density(state)
	-- Mass density
	-- Units: kg m^-3
	-- Refs: [4]
	--
	-- Crystallographic density 5.77 g/cm^3 for CuInSe2 (Z = 4,
	-- M = 336.3 g/mol, a = 5.776 A, c = 11.611 A [4]). Ga substitution
	-- lowers this: CuGaSe2 ~ 5.57 g/cm^3, so x ~ 0.3 CIGS ~ 5.7 g/cm^3.
	-- Value here is for the CuInSe2 end member.

	local enabled = true
	local value = 5770.0

	return value, enabled
end

Crystal lattice constant (material.lattice_constant)

function material.lattice_constant(state)
	-- Cubic lattice constant
	-- Units: m
	-- Refs: [4]
	--
	-- CIGS is tetragonal chalcopyrite. For CuInSe2, a = 5.776 A,
	-- c = 11.611 A (c/a = 2.01) [4]. This routine returns the in-plane
	-- constant "a"; the c axis is ~2a. Ga substitution contracts the
	-- lattice (CuGaSe2 a ~ 5.61 A), so a(x~0.3) ~ 5.73 A by Vegard.
	--
	-- Linear thermal expansion ~9e-6 /K is a representative average;
	-- CuInSe2 expansion is anisotropic (alpha_a /= alpha_c).

	local enabled = true
	local T = state.T
	local a300 = 5.776e-10
	local expansion = 9.0e-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: Chalcopyrite/kesterite estimate
	-- Confidence: Low
	--
	-- Reference:
	-- https://doi.org/10.1109/16.381985
	--
	-- Comments:
	-- Polycrystalline absorber family estimate. Grain boundaries and disorder
	-- make a single bulk relaxation time approximate.

	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: Chalcopyrite/kesterite estimate
	-- Confidence: Low
	--
	-- Reference:
	-- https://doi.org/10.1109/16.381985
	--
	-- Comments:
	-- Polycrystalline absorber family estimate. Grain boundaries and disorder
	-- make a single bulk relaxation time approximate.

	local enabled = true
	local value = 1.000000e-12

	return value, enabled
end

Lattice constant a (material.lattice_a)

function material.lattice_a(state)
	-- Lattice constant, a-axis
	-- Units: m
	--
	-- Reference (end-point a-axis constants, tetragonal chalcopyrite):
	-- CuInSe2: a = 5.782 Angstrom (ICDD PDF 04-0 / card 40-1487;
	--   c = 11.62 Angstrom), room temperature.
	-- CuGaSe2: a = 5.5963 Angstrom at 298 K (single crystal),
	--   S. C. Abrahams and J. L. Bernstein, J. Chem. Phys. 61, 1140 (1974).
	-- Vegard behaviour of CuIn(1-x)Ga(x)Se2 confirmed e.g. in
	-- first-principles studies (lattice a decreases linearly with Ga).
	--
	-- Notes:
	-- Tetragonal chalcopyrite (space group I-42d). a-axis by Vegard:
	--   a(x) = (1-x)*a_CuInSe2 + x*a_CuGaSe2
	-- The c-axis is NOT returned here. Reported CuGaSe2 a scatters over
	-- ~5.596-5.614 Angstrom between studies (uncertainty ~+/-0.02 Angstrom
	-- at the Ga-rich end). Room-temperature values; no T-dependence.
	--
	-- Composition variable:
	-- x is the gallium ratio GGI = Ga/(In+Ga) in CuIn(1-x)Ga(x)Se2
	-- (x = 0 -> CuInSe2, x = 1 -> CuGaSe2).
	-- IMPORTANT: this assumes the model carries composition in state.x.
	-- Confirm this matches the composition field your existing CIGS model
	-- already uses. If state.x holds spatial position in your build,
	-- change the marked line to the correct composition field.

	local enabled = true
	local x = state.x            -- <-- Ga/(In+Ga) ratio; confirm/rename if needed

	local a_CuInSe2 = 5.782e-10  -- m, chalcopyrite a-axis
	local a_CuGaSe2 = 5.5963e-10 -- m, chalcopyrite a-axis
	local value = (1.0 - x)*a_CuInSe2 + x*a_CuGaSe2

	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:
    -- Cu(In,Ga)Se2 is chalcopyrite (tetragonal I-42d), so cubic C11/C12/C44
    -- are not a complete description. The usual composition variable is
    -- x = Ga/(In+Ga), but a targeted search found no verified experimental
    -- endpoint set (CuInSe2 and CuGaSe2 single-crystal elastic constants,
    -- dielectric constants, an effective LO energy, or scalar acoustic
    -- deformation potentials) with accessible primary references; reported
    -- values are mostly first-principles with large spread. The blocker is
    -- the endpoint data, not the mapping.

    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:
    -- Cu(In,Ga)Se2 is chalcopyrite (tetragonal I-42d), so cubic C11/C12/C44
    -- are not a complete description. The usual composition variable is
    -- x = Ga/(In+Ga), but a targeted search found no verified experimental
    -- endpoint set (CuInSe2 and CuGaSe2 single-crystal elastic constants,
    -- dielectric constants, an effective LO energy, or scalar acoustic
    -- deformation potentials) with accessible primary references; reported
    -- values are mostly first-principles with large spread. The blocker is
    -- the endpoint data, not the mapping.

    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:
    -- Cu(In,Ga)Se2 is chalcopyrite (tetragonal I-42d), so cubic C11/C12/C44
    -- are not a complete description. The usual composition variable is
    -- x = Ga/(In+Ga), but a targeted search found no verified experimental
    -- endpoint set (CuInSe2 and CuGaSe2 single-crystal elastic constants,
    -- dielectric constants, an effective LO energy, or scalar acoustic
    -- deformation potentials) with accessible primary references; reported
    -- values are mostly first-principles with large spread. The blocker is
    -- the endpoint data, not the mapping.

    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:
    -- Cu(In,Ga)Se2 is chalcopyrite (tetragonal I-42d), so cubic C11/C12/C44
    -- are not a complete description. The usual composition variable is
    -- x = Ga/(In+Ga), but a targeted search found no verified experimental
    -- endpoint set (CuInSe2 and CuGaSe2 single-crystal elastic constants,
    -- dielectric constants, an effective LO energy, or scalar acoustic
    -- deformation potentials) with accessible primary references; reported
    -- values are mostly first-principles with large spread. The blocker is
    -- the endpoint data, not the mapping.

    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:
    -- Cu(In,Ga)Se2 is chalcopyrite (tetragonal I-42d), so cubic C11/C12/C44
    -- are not a complete description. The usual composition variable is
    -- x = Ga/(In+Ga), but a targeted search found no verified experimental
    -- endpoint set (CuInSe2 and CuGaSe2 single-crystal elastic constants,
    -- dielectric constants, an effective LO energy, or scalar acoustic
    -- deformation potentials) with accessible primary references; reported
    -- values are mostly first-principles with large spread. The blocker is
    -- the endpoint data, not the mapping.

    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:
    -- Cu(In,Ga)Se2 is chalcopyrite (tetragonal I-42d), so cubic C11/C12/C44
    -- are not a complete description. The usual composition variable is
    -- x = Ga/(In+Ga), but a targeted search found no verified experimental
    -- endpoint set (CuInSe2 and CuGaSe2 single-crystal elastic constants,
    -- dielectric constants, an effective LO energy, or scalar acoustic
    -- deformation potentials) with accessible primary references; reported
    -- values are mostly first-principles with large spread. The blocker is
    -- the endpoint data, not the mapping.

    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:
    -- Cu(In,Ga)Se2 is chalcopyrite (tetragonal I-42d), so cubic C11/C12/C44
    -- are not a complete description. The usual composition variable is
    -- x = Ga/(In+Ga), but a targeted search found no verified experimental
    -- endpoint set (CuInSe2 and CuGaSe2 single-crystal elastic constants,
    -- dielectric constants, an effective LO energy, or scalar acoustic
    -- deformation potentials) with accessible primary references; reported
    -- values are mostly first-principles with large spread. The blocker is
    -- the endpoint data, not the mapping.

    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:
    -- Cu(In,Ga)Se2 is chalcopyrite (tetragonal I-42d), so cubic C11/C12/C44
    -- are not a complete description. The usual composition variable is
    -- x = Ga/(In+Ga), but a targeted search found no verified experimental
    -- endpoint set (CuInSe2 and CuGaSe2 single-crystal elastic constants,
    -- dielectric constants, an effective LO energy, or scalar acoustic
    -- deformation potentials) with accessible primary references; reported
    -- values are mostly first-principles with large spread. The blocker is
    -- the endpoint data, not the mapping.

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