PTQ10FCCCl material model
1. Introduction
This page contains the OghmaNano material model for PTQ10FCCCl (C_xH_yF2ClN2OS2).
PTQ10FCCCl - halogenated PTQ10-type quinoxaline donor (see modelling note)
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
-- See end of file for copyright, licensing and documentation links.
local material = {}
-- ============================================================================
-- IMPORTANT MODELLING NOTE
-- ----------------------------------------------------------------------------
-- The specific halogenated variant "PTQ10FCCCl" was not found in the
-- literature searched, so the values below are taken from the well-
-- characterised parent donor PTQ10 (Sun et al., Nat. Commun. 2018) as a
-- baseline. Chlorine substitution on the quinoxaline typically deepens the
-- HOMO by ~0.03-0.10 eV relative to PTQ10 and can raise crystallinity/hole
-- mobility; the frontier levels here are NOT separately measured for this
-- variant. Please replace Eg, Xi and mu_h with the datasheet / paper values
-- for the exact material if available.
--
-- Baseline reference:
-- C. Sun, F. Pan, H. Bin, J. Zhang, L. Xue, B. Qiu, Z. Wei, Z.-G. Zhang,
-- Y. Li, "A low cost and high performance polymer donor material for polymer
-- solar cells", Nat. Commun., 9, 743, 2018.
-- ============================================================================
function material.name()
local enabled = true
return "PTQ10FCCCl", enabled
end
function material.description()
local enabled = true
return "PTQ10FCCCl - halogenated PTQ10-type quinoxaline donor (see modelling note)", enabled
end
function material.formula()
local enabled = true
-- NOMINAL / UNCERTAIN. PTQ10 is poly[(thiophene)-alt-(6,7-difluoro-2-
-- (2-hexyldecyloxy)quinoxaline)]; the FCCCl variant adds chlorine
-- substitution. Exact repeat-unit formula for this specific variant not
-- established here - confirm against the source material.
return "C_xH_yF2ClN2OS2", enabled
end
function material.Eg(state)
-- Units: eV
--
-- PTQ10 baseline: electrochemical HOMO-LUMO gap ~1.94 eV (HOMO -5.54 eV,
-- LUMO -3.60 eV); optical gap ~1.9 eV (wide-bandgap donor). The halogenated
-- FCCCl variant is expected to be similar with a slightly deeper HOMO; this
-- is a BASELINE ESTIMATE, not a measured value for the variant. Varshni does
-- not apply.
--
-- Reference:
-- C. Sun et al., Nat. Commun., 9, 743, 2018 (PTQ10 baseline).
local enabled = true
local value = 1.94
return value, enabled
end
function material.Xi(state)
-- Electron affinity (LUMO level below vacuum)
-- Units: eV
--
-- PTQ10 baseline LUMO ~-3.60 eV, HOMO ~-5.54 eV (cyclic voltammetry).
-- Baseline estimate for the FCCCl variant.
--
-- Reference:
-- C. Sun et al., Nat. Commun., 9, 743, 2018.
local enabled = true
local value = 3.60
return value, enabled
end
function material.Nc(state)
-- Effective conduction-band (LUMO) density of states
-- Units: m^-3
--
-- Disordered organic: a constant effective DOS is used (the crystalline
-- (T/300)^1.5 scaling does not apply). Representative value; the polymer
-- site density is ~1e27 m^-3 and the effective transport-level DOS is
-- normally set to 1e25-1e27 m^-3.
--
-- Reference:
-- Add the precise reference used for the effective density of states.
local enabled = true
local value = 1.0e26
return value, enabled
end
function material.Nv(state)
-- Effective valence-band (HOMO) density of states
-- Units: m^-3
--
-- See material.Nc. Constant effective DOS; representative value.
--
-- Reference:
-- Add the precise reference used for the effective density of states.
local enabled = true
local value = 1.0e26
return value, enabled
end
function material.mu_e(state)
-- Low-field electron mobility
-- Units: m^2 V^-1 s^-1
--
-- Donor polymer; neat-film electron transport poorly defined. Low
-- representative value used.
--
-- Reference:
-- Add the precise reference used for this value.
local enabled = true
local value = 1.0e-10
return value, enabled
end
function material.mue_x(state)
return material.mu_e(state)
end
function material.mue_y(state)
return material.mu_e(state)
end
function material.mue_z(state)
return material.mu_e(state)
end
function material.mu_h(state)
-- Low-field hole mobility
-- Units: m^2 V^-1 s^-1
--
-- PTQ10 baseline hole mobility ~1e-4 cm^2/V/s (=1e-8 m^2/V/s) by SCLC;
-- halogenation may increase it. Representative baseline value used.
--
-- Reference:
-- C. Sun et al., Nat. Commun., 9, 743, 2018.
local enabled = true
local value = 1.0e-8
return value, enabled
end
function material.muh_x(state)
return material.mu_h(state)
end
function material.muh_y(state)
return material.mu_h(state)
end
function material.muh_z(state)
return material.mu_h(state)
end
function material.epsilonr(state)
-- Relative static permittivity
-- Dimensionless
--
-- eps_r ~= 3 is the standard assumption for conjugated polymers.
--
-- Reference:
-- Add the precise reference used for this value.
local enabled = true
local value = 3.0
return value, enabled
end
function material.free_to_free_recombination(state)
-- Bimolecular (band-to-band) recombination coefficient
-- Units: m^3 s^-1
--
-- Langevin-type (non-radiative) free-carrier recombination; donor-
-- acceptor blends typically show reduced (sub-)Langevin behaviour. A
-- representative effective value is used.
--
-- Reference:
-- Add the precise reference used for this value.
local enabled = true
local value = 1.0e-17
return value, enabled
end
function material.auger_Cn(state)
-- Electron Auger recombination coefficient
-- Units: m^6 s^-1
--
-- Negligible in organic semiconductors; a very small representative
-- value is used so the channel is effectively inactive.
--
-- Reference:
-- Not applicable / negligible for organic semiconductors.
local enabled = true
local value = 1.0e-45
return value, enabled
end
function material.auger_Cp(state)
-- Hole Auger recombination coefficient
-- Units: m^6 s^-1
--
-- See material.auger_Cn. Very small representative value.
--
-- Reference:
-- Not applicable / negligible for organic semiconductors.
local enabled = true
local value = 1.0e-45
return value, enabled
end
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/LUMO band).
-- Negative values are below mid-gap (towards the valence/HOMO band).
--
-- Placed at mid-gap as a representative single-level approximation.
local enabled = true
local value = 0.0
return value, enabled
end
function material.ss_srh_Nt(state)
-- SRH trap density
-- Units: m^-3
--
-- Representative value.
local enabled = true
local value = 1.0e22
return value, enabled
end
function material.ss_srh_sigma_n(state)
-- Electron capture cross section
-- Units: m^2
--
-- Representative value.
local enabled = true
local value = 1.0e-20
return value, enabled
end
function material.ss_srh_sigma_p(state)
-- Hole capture cross section
-- Units: m^2
--
-- Representative value.
local enabled = true
local value = 1.0e-20
return value, enabled
end
function material.thermal_conductivity(state)
-- Thermal conductivity
-- Units: W m^-1 K^-1
--
-- Not specifically characterised for this polymer; organic semiconducting
-- films are typically ~0.1-0.3 W/m/K. Representative value; the crystalline
-- phonon (300/T)^n scaling is not applied.
--
-- Reference:
-- Add the precise reference used for this value.
local enabled = true
local value = 0.2
return value, enabled
end
function material.heat_capacity(state)
-- Specific heat capacity
-- Units: J kg^-1 K^-1
--
-- Not specifically characterised; organic polymers are typically
-- ~1000-2000 J/kg/K near room temperature. Representative value.
--
-- Reference:
-- Add the precise reference used for this value.
local enabled = true
local value = 1200.0
return value, enabled
end
function material.density(state)
-- Mass density
-- Units: kg m^-3
--
-- Representative organic-polymer film density (~1.1 g/cm^3); not precisely
-- characterised for this polymer.
--
-- Reference:
-- Add the precise reference used for this value.
local enabled = true
local value = 1100.0
return value, enabled
end
function material.lattice_constant(state)
-- Characteristic structural spacing
-- Units: m
--
-- Conjugated-polymer donors are weakly ordered / largely amorphous, so a
-- single cubic lattice constant is not meaningful. GIWAXS typically shows a
-- lamellar (100) spacing of ~1.8-2.2e-9 m and a pi-pi (010) stacking
-- distance of ~0.36-0.39e-9 m. The lamellar spacing is returned as a
-- representative value.
--
-- Reference:
-- Add the precise reference used for this value.
local enabled = true
local value = 2.0e-9
return value, enabled
end
function material.Ntrape(state)
-- Electron tail (exponential band-tail) trap density
-- Units: m^-3
--
-- Representative magnitude for a disordered organic; adjust for the specific
-- film. (Distinct from the deep trap density in ss_srh_Nt.)
local enabled = true
local value = 1.0e26
return value, enabled
end
function material.Ntraph(state)
-- Hole tail (exponential band-tail) trap density
-- Units: m^-3
--
-- See material.Ntrape. Representative value.
local enabled = true
local value = 1.0e26
return value, enabled
end
function material.Etrape(state)
-- Electron tail characteristic (Urbach) energy
-- Units: eV
--
-- Representative disordered-organic value.
local enabled = true
local value = 0.06
return value, enabled
end
function material.Etraph(state)
-- Hole tail characteristic (Urbach) energy
-- Units: eV
--
-- See material.Etrape. Representative value.
local enabled = true
local value = 0.06
return value, enabled
end
function material.srhsigman_e(state)
-- Electron-to-electron capture cross section
-- Units: m^2
--
-- Representative value for the tail-state SRH model.
local enabled = true
local value = 1.0e-20
return value, enabled
end
function material.srhsigmap_e(state)
-- Hole-to-electron capture cross section
-- Units: m^2
--
-- Representative value for the tail-state SRH model.
local enabled = true
local value = 1.0e-20
return value, enabled
end
function material.srhsigman_h(state)
-- Electron-to-hole capture cross section
-- Units: m^2
--
-- Representative value for the tail-state SRH model.
local enabled = true
local value = 1.0e-20
return value, enabled
end
function material.srhsigmap_h(state)
-- Hole-to-hole capture cross section
-- Units: m^2
--
-- Representative value for the tail-state SRH model.
local enabled = true
local value = 1.0e-20
return value, enabled
end
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("Thermal conductivity: %.6e W/m/K", material.thermal_conductivity(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)))
print(string.format("Electron trap density: %.6e m^-3", material.Ntrape(state)))
print(string.format("Hole trap density: %.6e m^-3", material.Ntraph(state)))
print(string.format("Electron trap energy: %.6f eV", material.Etrape(state)))
print(string.format("Hole trap energy: %.6f eV", material.Etraph(state)))
print(string.format("SRH sigma n->e: %.6e m^2", material.srhsigman_e(state)))
print(string.format("SRH sigma p->e: %.6e m^2", material.srhsigmap_e(state)))
print(string.format("SRH sigma n->h: %.6e m^2", material.srhsigman_h(state)))
print(string.format("SRH sigma p->h: %.6e m^2", material.srhsigmap_h(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.
-- ============================================================================