PTQ10:FCC-Cl material model
1. Introduction
This page contains the OghmaNano material model for PTQ10:FCC-Cl (PTQ10:FCC-Cl (blend)).
PTQ10:FCC-Cl wide-bandgap (indoor) non-fullerene bulk-heterojunction blend (effective-medium model)
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
-- ----------------------------------------------------------------------------
-- CORRECTION: an earlier version of this file wrongly treated 'PTQ10FCCCl'
-- as a single material. It is a BLEND: PTQ10 donor + FCC-Cl acceptor.
--
-- This file represents the PTQ10:FCC-Cl bulk-heterojunction BLEND as a single
-- EFFECTIVE semiconductor, following OghmaNano's standard BHJ approach:
-- - electron affinity Xi = acceptor LUMO
-- - HOMO (= Xi + Eg) = donor HOMO
-- - effective band gap Eg = donor HOMO - acceptor LUMO (sets max Voc)
-- - electron mobility mu_e = acceptor electron mobility
-- - hole mobility mu_h = donor hole mobility
-- The two-phase morphology, exciton dynamics and the true optical
-- absorption (donor + acceptor n/k) are NOT captured by this single-layer
-- abstraction and are handled elsewhere in the model.
--
-- Component values used:
-- PTQ10: HOMO -5.54 eV, hole mobility 1.0e-8 m^2/V/s
-- FCC-Cl: LUMO -3.71 eV, electron mobility 1.0e-7 m^2/V/s
--
-- References:
-- PTQ10 energy levels: C. Sun, F. Pan, H. Bin, J. Zhang, L. Xue, B. Qiu,
-- Z. Wei, Z.-G. Zhang, Y. Li, Nat. Commun., 9, 743, 2018.
-- FCC-Cl energy levels (LUMO -3.71 eV, HOMO -5.73 eV, optical gap 1.71 eV;
-- highly crystalline wide-bandgap indoor acceptor): H. Yan and co-workers,
-- "A highly crystalline non-fullerene acceptor enabling efficient indoor
-- organic photovoltaics with high EQE and fill factor", Joule, 5, 2021.
-- Note: FCC-Cl was reported with D18 and PM6 donors; the PTQ10 pairing
-- here follows the requested combination.
-- ============================================================================
function material.name()
local enabled = true
return "PTQ10:FCC-Cl", enabled
end
function material.description()
local enabled = true
return "PTQ10:FCC-Cl wide-bandgap (indoor) non-fullerene bulk-heterojunction blend (effective-medium model)", enabled
end
function material.formula()
local enabled = true
-- Blend of the low-cost PTQ10 donor and the wide-bandgap FCC-Cl non-
-- fullerene acceptor (A-D-A, fluorene-dicyclopentathiophene core).
return "PTQ10:FCC-Cl (blend)", enabled
end
function material.Eg(state)
-- Units: eV
--
-- EFFECTIVE (interfacial / charge-transfer) gap of the blend = donor HOMO
-- minus acceptor LUMO = -5.54 - (-3.71) = 1.83 eV. This sets the maximum
-- attainable open-circuit voltage; it is NOT the optical gap of either
-- component. FCC-Cl is a wide-bandgap acceptor (optical gap 1.71 eV); the wide
-- effective gap gives the high Voc targeted for indoor OPV. Varshni does not apply.
--
-- See the header for component references.
local enabled = true
local value = 1.83
return value, enabled
end
function material.Xi(state)
-- Electron affinity of the blend (= acceptor LUMO)
-- Units: eV
--
-- Set to the FCC-Cl LUMO (-3.71 eV); electrons reside on the acceptor.
--
-- See the header for component references.
local enabled = true
local value = 3.71
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)
-- Electron mobility of the blend (= acceptor electron mobility)
-- Units: m^2 V^-1 s^-1
--
-- Set to the FCC-Cl (highly crystalline) electron mobility (~1e-3 cm^2/V/s). Organic mobility is
-- thermally activated, field- and density-dependent; a single low-field
-- value is used.
--
-- See the header for component references.
local enabled = true
local value = 1.0e-7
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)
-- Hole mobility of the blend (= donor hole mobility)
-- Units: m^2 V^-1 s^-1
--
-- Set to the PTQ10 hole mobility (~1e-4 cm^2/V/s). A single low-field value
-- is used.
--
-- See the header for component references.
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
--
-- Blend value ~3.5 (between the conjugated-polymer donor ~3-3.5 and the
-- acceptor; fullerenes ~3.9). Representative value used.
--
-- Reference:
-- Add the precise reference used for this value.
local enabled = true
local value = 3.50
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 interfacial trap density for the blend.
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.
-- ============================================================================