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

Ge material model

1. Introduction

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

Bulk crystalline germanium

The model is written in Lua and provides simulation-ready material parameterisations for use within OghmaNano. For documentation, licensing, references, and information about the scope and accuracy of these models, see the material scripting documentation.

2. Lua material model

Supporting definitions

-- See end of file for copyright, licensing and documentation links.

local material = {}

Material name (material.name)

function material.name()
	local enabled = true

	return "Ge", enabled
end

Material description (material.description)

function material.description()
	local enabled = true

	return "Bulk crystalline germanium", enabled
end

Chemical formula (material.formula)

function material.formula()
	local enabled = true

	return "Ge", enabled
end

Band gap energy (material.Eg)

function material.Eg(state)
	-- Units: eV
	--
	-- Reference:
	-- Y. P. Varshni,
	-- "Temperature dependence of the energy gap in semiconductors",
	-- Physica, 34, 149-154, 1967.
	--
	-- Fundamental (indirect, L-valley) gap parameters
	-- (Eg(0) = 0.7437 eV, alpha = 4.774e-4 eV/K, beta = 235 K).
	-- Gives Eg(300 K) = 0.663 eV.
	--
	-- Note: Ge is indirect (conduction minimum at L), but its DIRECT
	-- (Gamma) gap is only slightly higher (~0.80 eV at 300 K). This
	-- near-degeneracy makes Ge effectively "quasi-direct" and gives it
	-- strong direct absorption above ~0.8 eV, exploited in Ge near-IR
	-- photodetectors and Ge-on-Si photonics. This function returns the
	-- fundamental indirect L gap, which sets the intrinsic carrier
	-- density and thermal generation.

	local enabled = true
	local T = state.T
	local value = 0.7437 - 4.774e-4*T*T/(T + 235.0)

	return value, enabled
end

Deformation potential Xi (material.Xi)

function material.Xi(state)
	-- Electron affinity
	-- Units: eV
	--
	-- Reference:
	-- S. M. Sze and K. K. Ng, "Physics of Semiconductor Devices",
	-- 3rd ed., Wiley, 2007.

	local enabled = true
	local value = 4.0

	return value, enabled
end

Electron effective mass (material.me)

function material.me(state)
    local enabled = true
    -- L-valley [001] confinement mass ~0.12 (m_l=1.59, m_t=0.082).
    -- WARNING: multivalley (4 L valleys); Gamma (0.038) sits only ~0.14 eV higher.
    -- Prefer the multivalley solver. Ref: standard Ge band params (Sze).
    local value = 0.12
    return value, enabled
end

Hole effective mass (material.mh)

function material.mh(state)
    local enabled = true
    -- HH[001]: g1=13.38 g2=4.24 -> 1/(13.38-8.48)
    local value = 0.20
    return value, enabled
end

Effective conduction-band density of states (material.Nc)

function material.Nc(state)
	-- Effective conduction-band density of states
	-- Units: m^-3
	--
	-- Reference:
	-- S. M. Sze and K. K. Ng, "Physics of Semiconductor Devices",
	-- 3rd ed., Wiley, 2007.
	-- Nc(300 K) = 1.0e19 cm^-3 = 1.0e25 m^-3 (four equivalent
	-- L-valleys).
	--
	-- Note: the (T/300)^1.5 form is the simple parabolic-band model.

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

	return value, enabled
end

Effective valence-band density of states (material.Nv)

function material.Nv(state)
	-- Effective valence-band density of states
	-- Units: m^-3
	--
	-- Reference:
	-- S. M. Sze and K. K. Ng, "Physics of Semiconductor Devices",
	-- 3rd ed., Wiley, 2007.
	-- Nv(300 K) = 6.0e18 cm^-3 = 6.0e24 m^-3.

	local enabled = true
	local T = state.T
	local value = 6.0e24*(T/300.0)^1.5

	return value, enabled
end

Electron mobility (material.mu_e)

function material.mu_e(state)
	-- Low-field electron mobility
	-- Units: m^2 V^-1 s^-1
	--
	-- Reference:
	-- S. M. Sze and K. K. Ng, "Physics of Semiconductor Devices",
	-- 3rd ed., Wiley, 2007; standard Ge transport data.
	-- mu_n(300 K) = 3900 cm^2/V/s = 0.39 m^2/V/s, phonon-limited
	-- temperature dependence approximately (300/T)^1.66.
	--
	-- Note: intrinsic (lattice) mobility only; no doping /
	-- ionised-impurity dependence.

	local enabled = true
	local T = state.T
	local value = 0.39*(300.0/T)^1.66

	return value, enabled
end

Electron mobility in the x direction (material.mue_x)

function material.mue_x(state)
	return material.mu_e(state)
end

Electron mobility in the y direction (material.mue_y)

function material.mue_y(state)
	return material.mu_e(state)
end

Electron mobility in the z direction (material.mue_z)

function material.mue_z(state)
	return material.mu_e(state)
end

Hole mobility (material.mu_h)

function material.mu_h(state)
	-- Low-field hole mobility
	-- Units: m^2 V^-1 s^-1
	--
	-- Reference:
	-- S. M. Sze and K. K. Ng, "Physics of Semiconductor Devices",
	-- 3rd ed., Wiley, 2007; standard Ge transport data.
	-- mu_p(300 K) = 1900 cm^2/V/s = 0.19 m^2/V/s, phonon-limited
	-- temperature dependence approximately (300/T)^2.33.

	local enabled = true
	local T = state.T
	local value = 0.19*(300.0/T)^2.33

	return value, enabled
end

Hole mobility in the x direction (material.muh_x)

function material.muh_x(state)
	return material.mu_h(state)
end

Hole mobility in the y direction (material.muh_y)

function material.muh_y(state)
	return material.mu_h(state)
end

Hole mobility in the z direction (material.muh_z)

function material.muh_z(state)
	return material.mu_h(state)
end

Relative dielectric permittivity (material.epsilonr)

function material.epsilonr(state)
	-- Relative static permittivity
	-- Dimensionless
	--
	-- Reference:
	-- S. M. Sze and K. K. Ng, "Physics of Semiconductor Devices",
	-- 3rd ed., Wiley, 2007.

	local enabled = true
	local value = 16.0

	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
	--
	-- Reference:
	-- Representative Ge value, ~5e-14 cm^3/s = 5e-20 m^3/s.
	--
	-- Ge is indirect, but its low-lying direct gap makes radiative
	-- recombination stronger than in Si. Representative value; adjust
	-- by hand.

	local enabled = true
	local value = 5.0e-20

	return value, enabled
end

Electron Auger recombination coefficient (material.auger_Cn)

function material.auger_Cn(state)
	-- Electron Auger recombination coefficient
	-- Units: m^6 s^-1
	--
	-- Reference:
	-- Representative Ge value, ~1e-30 cm^6/s = 1e-42 m^6/s.
	--
	-- Note: with its narrow (~0.66 eV) gap, Auger recombination in Ge
	-- is significant (much stronger than in Si). Representative value;
	-- adjust by hand for quantitative work.

	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
	--
	-- Reference:
	-- Representative Ge value, ~1e-30 cm^6/s = 1e-42 m^6/s.
	--
	-- Note: see auger_Cn. Adjust by hand.

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

	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
	--
	-- Material-quality dependent; set from the intended bulk lifetime.
	-- Representative placeholder for device-grade material.

	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 value ~1e-15 cm^2 = 1e-19 m^2.

	local enabled = true
	local value = 1.0e-19

	return value, enabled
end

Interface hole capture cross-section (material.ss_srh_sigma_p)

function material.ss_srh_sigma_p(state)
	-- Hole capture cross section
	-- Units: m^2
	--
	-- 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
	--
	-- Reference:
	-- C. J. Glassbrenner and G. A. Slack,
	-- "Thermal conductivity of silicon and germanium from 3 K to the
	-- melting point", Phys. Rev. 134, A1058-A1069, 1964.
	-- kappa(300 K) ~ 60 W/m/K; near room temperature kappa decreases
	-- with T with an effective exponent of about -1.25.

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

	return value, enabled
end

Specific heat capacity (material.heat_capacity)

function material.heat_capacity(state)
	-- Specific heat capacity
	-- Units: J kg^-1 K^-1
	--
	-- Reference:
	-- Standard Ge data. c_p(300 K) ~ 320 J/kg/K.

	local enabled = true
	local value = 320.0

	return value, enabled
end

Mass density (material.density)

function material.density(state)
	-- Mass density
	-- Units: kg m^-3
	--
	-- Reference:
	-- Standard Ge data. rho = 5.323 g/cm^3.

	local enabled = true
	local value = 5323.0

	return value, enabled
end

Crystal lattice constant (material.lattice_constant)

function material.lattice_constant(state)
	-- Cubic lattice constant
	-- Units: m
	--
	-- Reference:
	-- Standard Ge data.
	-- a(300 K) = 5.6579 A; linear expansion ~5.9e-6 /K near 300 K.
	--
	-- Note: Ge is very nearly lattice-matched to GaAs (5.65325 A), so
	-- GaAs and related III-Vs can be grown on Ge (and vice versa). This
	-- underlies the use of Ge as the substrate and bottom junction of
	-- GaInP/GaAs/Ge triple-junction (space) solar cells.

	local enabled = true
	local T = state.T
	local a300 = 5.6579e-10
	local expansion = 5.9e-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: Narrow-gap family estimate
	-- Confidence: Low
	--
	-- Reference:
	-- https://doi.org/10.1103/PhysRevB.103.245205
	--
	-- Comments:
	-- Narrow-gap semiconductor with strong non-parabolicity. Use 2 ps as a
	-- conservative effective value and test field dependence.

	local enabled = true
	local value = 2.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: Narrow-gap family estimate
	-- Confidence: Low
	--
	-- Reference:
	-- https://doi.org/10.1103/PhysRevB.103.245205
	--
	-- Comments:
	-- Narrow-gap semiconductor with strong non-parabolicity. Use 2 ps as a
	-- conservative effective value and test field dependence.

	local enabled = true
	local value = 2.000000e-12

	return value, enabled
end

Luttinger parameter gamma1 (material.gamma1)

function material.gamma1(state)
	-- Luttinger valence-band parameter gamma1 (dimensionless). HIGH confidence.
	--
	-- Full reference:
	-- P. Lawaetz,
	-- "Valence-Band Parameters in Cubic Semiconductors",
	-- Physical Review B 4, 3460-3467 (1971).
	-- DOI: 10.1103/PhysRevB.4.3460

	local enabled = true
	local value = 13.38

	return value, enabled
end

Luttinger parameter gamma2 (material.gamma2)

function material.gamma2(state)
	-- Luttinger valence-band parameter gamma2 (dimensionless).
	-- Quoted positive (|gamma2|); some works tabulate -4.24. Keep sign
	-- consistent with your Hamiltonian assembly (same choice as Si above).
	--
	-- Full reference:
	-- P. Lawaetz,
	-- "Valence-Band Parameters in Cubic Semiconductors",
	-- Physical Review B 4, 3460-3467 (1971).
	-- DOI: 10.1103/PhysRevB.4.3460

	local enabled = true
	local value = 4.24

	return value, enabled
end

Luttinger parameter gamma3 (material.gamma3)

function material.gamma3(state)
	-- Luttinger valence-band parameter gamma3 (dimensionless). HIGH confidence.
	--
	-- Full reference:
	-- P. Lawaetz,
	-- "Valence-Band Parameters in Cubic Semiconductors",
	-- Physical Review B 4, 3460-3467 (1971).
	-- DOI: 10.1103/PhysRevB.4.3460

	local enabled = true
	local value = 5.69

	return value, enabled
end

Spin–orbit splitting energy (material.delta_so)

function material.delta_so(state)
	-- Spin-orbit split-off energy delta_so (eV). HIGH confidence.
	-- Much larger than in Si (0.29 eV vs 0.044 eV): the SO band is well
	-- separated in Ge and cannot be neglected.
	--
	-- Full reference:
	-- O. Madelung (Ed.),
	-- "Semiconductors: Data Handbook", 3rd ed., Springer, 2004, Ge section.

	local enabled = true
	local value = 0.29

	return value, enabled
end

Optical absorption / extinction parameter (material.av)

function material.av(state)
	-- Valence-band-average hydrostatic deformation potential a_v (eV).
	-- Convention: Delta Ev,av = a_v * Tr(epsilon), tensile positive. MEDIUM.
	-- See header note * on avoiding double counting with database band edges.
	--
	-- Full reference:
	-- C. G. Van de Walle,
	-- "Band lineups and deformation potentials in the model-solid theory",
	-- Physical Review B 39, 1871-1883 (1989).
	-- DOI: 10.1103/PhysRevB.39.1871
	-- (a_v(Ge) = 1.24 eV in the model-solid theory.)

	local enabled = true
	local value = 1.24

	return value, enabled
end

Recombination parameter b (material.b)

function material.b(state)
	-- Tetragonal shear deformation potential b (eV). Bir-Pikus, b < 0. MEDIUM.
	-- Literature spread ~ -2.3 to -2.9 eV (recent high-strain electro-
	-- absorption gives -2.32 eV; classic data-handbook value -2.86 eV).
	--
	-- Full reference:
	-- O. Madelung (Ed.), "Semiconductors: Data Handbook", 3rd ed.,
	-- Springer, 2004, Ge section (b = -2.86 eV).
	-- Convention: G. L. Bir and G. E. Pikus, "Symmetry and Strain-Induced
	-- Effects in Semiconductors", Wiley, 1974.

	local enabled = true
	local value = -2.86

	return value, enabled
end

Material parameter d (material.d)

function material.d(state)
	-- Trigonal shear deformation potential d (eV). Bir-Pikus, d < 0. MEDIUM.
	-- Literature spread for Ge ~ -4.7 to -5.3 eV.
	--
	-- Full reference:
	-- O. Madelung (Ed.), "Semiconductors: Data Handbook", 3rd ed.,
	-- Springer, 2004, Ge section (d ~= -5.28 eV).
	-- Convention: G. L. Bir and G. E. Pikus, Wiley, 1974.

	local enabled = true
	local value = -5.28

	return value, enabled
end

------------------------------------------------------------------------
-- SHARED STRUCTURAL PARAMETERS (Germanium)
------------------------------------------------------------------------

Lattice constant a (material.lattice_a)

function material.lattice_a(state)
	-- Cubic lattice constant (metres), 300 K.
	--
	-- Full reference:
	-- O. Madelung (Ed.), "Semiconductors: Data Handbook", 3rd ed.,
	-- Springer, 2004, Ge section (a_Ge = 5.6579 Angstrom at 300 K).

	local enabled = true
	local value = 5.658e-10

	return value, enabled
end

Elastic stiffness constant C11 (material.C11)

function material.C11(state)
	-- Elastic stiffness C11 (Pa), 300 K.
	--
	-- Full reference:
	-- J. J. Wortman and R. A. Evans,
	-- "Young's Modulus, Shear Modulus, and Poisson's Ratio in Silicon
	--  and Germanium", Journal of Applied Physics 36, 153-156 (1965).
	-- DOI: 10.1063/1.1713863
	-- (C11 = 128.5 GPa at 300 K; 131.5 GPa at low T.)

	local enabled = true
	local value = 128.5e9

	return value, enabled
end

Elastic stiffness constant C12 (material.C12)

function material.C12(state)
	-- Elastic stiffness C12 (Pa), 300 K.
	--
	-- Full reference:
	-- J. J. Wortman and R. A. Evans,
	-- Journal of Applied Physics 36, 153-156 (1965).
	-- DOI: 10.1063/1.1713863
	-- (C12 = 48.3 GPa at 300 K.)

	local enabled = true
	local value = 48.3e9

	return value, enabled
end

------------------------------------------------------------------------
-- CONDUCTION PARAMETERS (Germanium)
--
-- *** PHYSICS WARNING -- READ BEFORE ENABLING ***
-- Bulk Ge has its conduction-band minimum at the FOUR equivalent L points
-- (<111> zone-boundary points), NOT at the six Si-like Delta valleys.
-- The Gamma valley sits ~0.14 eV above L; the Delta minima sit even higher
-- (~0.85 eV above the VB max, well above L). Therefore a six-Delta-valley
-- orientation solver (valleys along +/-x,+/-y,+/-z, sixfold) does NOT describe
-- the Ge conduction band. Number of valleys (4 vs 6), their orientations
-- (<111> vs <100>) and their degeneracy are all different.
--
-- Consequently the Delta-valley functions below are returned DISABLED
-- (enabled = false, value = 0). The correct Ge L-valley numbers ARE given in
-- the comments so they are traceable, but they must be consumed by an
-- L-valley (four-<111>-valley) model, not by the six-Delta solver.
------------------------------------------------------------------------

Longitudinal effective mass (material.qw_ml)

function material.qw_ml(state)
	-- Ge conduction longitudinal mass.
	-- DISABLED for the six-Delta solver (Ge CBM is at L, not Delta).
	--
	-- For an L-valley model use ml_L = 1.59 m0 (longitudinal, along <111>).
	-- HIGH confidence for the L value itself.
	--
	-- Full reference (L-valley masses):
	-- R. N. Dexter, H. J. Zeiger, B. Lax,
	-- "Cyclotron Resonance Experiments in Silicon and Germanium",
	-- Physical Review 104, 637-644 (1956).
	-- DOI: 10.1103/PhysRev.104.637

	local enabled = false
	local value = 0.0    -- L-valley value (do not use here): ml_L = 1.59 m0

	return value, enabled
end

Transverse effective mass (material.qw_mt)

function material.qw_mt(state)
	-- Ge conduction transverse mass.
	-- DISABLED for the six-Delta solver (Ge CBM is at L, not Delta).
	--
	-- For an L-valley model use mt_L = 0.0815 m0 (transverse). HIGH confidence.
	--
	-- Full reference (L-valley masses):
	-- R. N. Dexter, H. J. Zeiger, B. Lax,
	-- "Cyclotron Resonance Experiments in Silicon and Germanium",
	-- Physical Review 104, 637-644 (1956).
	-- DOI: 10.1103/PhysRev.104.637

	local enabled = false
	local value = 0.0    -- L-valley value (do not use here): mt_L = 0.0815 m0

	return value, enabled
end

Dilatational deformation potential (material.qw_Xi_d)

function material.qw_Xi_d(state)
	-- Ge conduction dilatation deformation potential.
	-- DISABLED for the six-Delta solver (Ge CBM is at L, not Delta).
	--
	-- For an L-valley model (Delta Ec = Xi_d*Tr(eps) + Xi_u*(n.eps.n) with n
	-- along <111>) use Xi_d_L = -4.4 eV. MEDIUM confidence: L-valley Xi_d
	-- spans roughly -4.4 to -6.4 eV between fits; -4.4 eV is the Fischetti-Laux
	-- mobility-consistent value paired with Xi_u_L = 16.2 eV below.
	--
	-- Full reference:
	-- M. V. Fischetti and S. E. Laux,
	-- "Band structure, deformation potentials, and carrier mobility in
	--  strained Si, Ge, and SiGe alloys",
	-- Journal of Applied Physics 80, 2234-2252 (1996).
	-- DOI: 10.1063/1.363052

	local enabled = false
	local value = 0.0    -- L-valley value (do not use here): Xi_d_L = -4.4 eV

	return value, enabled
end

Uniaxial deformation potential (material.qw_Xi_u)

function material.qw_Xi_u(state)
	-- Ge conduction uniaxial deformation potential.
	-- DISABLED for the six-Delta solver (Ge CBM is at L, not Delta).
	--
	-- For an L-valley model use Xi_u_L = 16.2 eV (spread ~15.9-16.4 eV).
	-- MEDIUM-HIGH confidence for the L value.
	--
	-- Full reference:
	-- C. Herring and E. Vogt,
	-- "Transport and Deformation-Potential Theory for Many-Valley
	--  Semiconductors with Anisotropic Scattering",
	-- Physical Review 101, 944-961 (1956).
	-- DOI: 10.1103/PhysRev.101.944
	-- (Value consistent with Fischetti & Laux, J. Appl. Phys. 80, 2234 (1996).)

	local enabled = false
	local value = 0.0    -- L-valley value (do not use here): Xi_u_L = 16.2 eV

	return value, enabled
end

Elastic stiffness constant C44 (material.C44)

function material.C44(state)
    -- Elastic stiffness constant C44
    -- Units: Pa
    --
    -- Crystal phase: diamond (Oh), listed under zincblende profile.
    --
    -- Reference:
    -- M. Levinshtein, S. Rumyantsev, M. Shur (eds.),
    -- Handbook Series on Semiconductor Parameters, Vols. 1 and 2
    -- (World Scientific, 1996 and 1999), as reproduced in the Ioffe
    -- Institute NSM archive (www.ioffe.ru/SVA/NSM/Semicond/).
    --
    -- Notes:
    -- 6.77e11 dyn/cm^2 at 300 K = 67.7 GPa -> 67.7e9 Pa.

    local enabled = true
    local value = 67.7e9

    return value, enabled
end

Optical absorption coefficient (material.ac)

function material.ac(state)
    -- Hydrostatic conduction-band deformation potential ac
    -- Units: eV
    --
    -- No sufficiently reliable value/reference identified.
    -- Disabled rather than estimated.
    --
    -- Notes:
    -- Germanium's conduction minimum is at L. The L-valley hydrostatic ac is
    -- Xi_d + Xi_u/3 (model-solid convention, Van de Walle, Phys. Rev. B 39,
    -- 1871 (1989)). A re-search in this pass found Xi_u(L) = 16.2 eV quoted
    -- from Van de Walle & Martin, Phys. Rev. B 34, 5621 (1986) (e.g.
    -- arXiv:0902.0491), but no verified Xi_d(L) from the same source, so ac
    -- cannot be assembled without guessing. A Gamma-valley ac would be
    -- physically inappropriate for transport.

    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
    --
    -- Reference:
    -- M. Levinshtein, S. Rumyantsev, M. Shur (eds.),
    -- Handbook Series on Semiconductor Parameters, Vols. 1 and 2
    -- (World Scientific, 1996 and 1999), as reproduced in the Ioffe
    -- Institute NSM archive (www.ioffe.ru/SVA/NSM/Semicond/).
    -- citing Nilsson & Nelin (1972), nu_LTO(Gamma) = 9.02 THz at 300 K.
    --
    -- Notes:
    -- Ge is non-polar: LO and TO are degenerate at Gamma and there is NO
    -- Frohlich coupling (eps_s = eps_inf). Value provided only as the
    -- zone-centre optical phonon energy (relevant to non-polar optical
    -- deformation-potential scattering).
    -- 9.02 x 4.135667e-3 = 0.03730 eV.

    local enabled = true
    local value = 0.03730

    return value, enabled
end

Static dielectric constant (material.epsilon_static)

function material.epsilon_static(state)
    -- Static relative dielectric constant (lattice + electronic)
    -- Dimensionless
    --
    -- Reference:
    -- M. Levinshtein, S. Rumyantsev, M. Shur (eds.),
    -- Handbook Series on Semiconductor Parameters, Vols. 1 and 2
    -- (World Scientific, 1996 and 1999), as reproduced in the Ioffe
    -- Institute NSM archive (www.ioffe.ru/SVA/NSM/Semicond/).
    --
    -- Notes:
    -- Ge: 16.2 (300 K).

    local enabled = true
    local value = 16.2

    return value, enabled
end

High-frequency dielectric constant (material.epsilon_inf)

function material.epsilon_inf(state)
    -- High-frequency (electronic) relative dielectric constant
    -- Dimensionless
    --
    -- Reference:
    -- M. Levinshtein, S. Rumyantsev, M. Shur (eds.),
    -- Handbook Series on Semiconductor Parameters, Vols. 1 and 2
    -- (World Scientific, 1996 and 1999), as reproduced in the Ioffe
    -- Institute NSM archive (www.ioffe.ru/SVA/NSM/Semicond/).
    --
    -- Notes:
    -- Non-polar diamond lattice: no infrared-active lattice polarisation, so
    -- eps_inf = eps_s = 16.2 (Frohlich coupling vanishes).

    local enabled = true
    local value = 16.2

    return value, enabled
end

Piezoelectric coefficient e14 (material.e14)

function material.e14(state)
    -- Zincblende piezoelectric stress coefficient e14
    -- Units: C m^-2
    --
    -- Reference:
    -- J. F. Nye, Physical Properties of Crystals
    -- (Oxford University Press, 1957) - piezoelectric tensor vanishes
    -- identically in centrosymmetric point groups.
    --
    -- Notes:
    -- Ge is diamond structure (point group m-3m, centrosymmetric): bulk
    -- piezoelectric coefficients vanish identically. e14 = 0 is exact by
    -- symmetry, not an estimate.

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