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

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

Supporting definitions

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

Material name (material.name)

function material.name()
	local enabled = true

	return "PTQ10:FCC-Cl", enabled
end

Material description (material.description)

function material.description()
	local enabled = true

	return "PTQ10:FCC-Cl wide-bandgap (indoor) non-fullerene bulk-heterojunction blend (effective-medium model)", enabled
end

Chemical formula (material.formula)

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

Band gap energy (material.Eg)

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

Deformation potential Xi (material.Xi)

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

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

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

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

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

Electron mobility (material.mu_e)

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

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

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

Free-carrier radiative recombination (material.free_to_free_recombination)

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

Electron Auger recombination coefficient (material.auger_Cn)

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

Hole Auger recombination coefficient (material.auger_Cp)

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

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/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

Interface trap density (material.ss_srh_Nt)

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

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.

	local enabled = true
	local value = 1.0e-20

	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.

	local enabled = true
	local value = 1.0e-20

	return value, enabled
end

Lattice thermal conductivity (material.thermal_kl)

function material.thermal_kl(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

Specific heat capacity (material.heat_capacity)

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

Mass density (material.density)

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

Crystal lattice constant (material.lattice_constant)

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

Electron trap density (material.Ntrape)

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

Hole trap density (material.Ntraph)

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

Electron trap energy (material.Etrape)

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

Hole trap energy (material.Etraph)

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

Electron capture cross-section for electron traps (material.srhsigman_e)

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

Hole capture cross-section for electron traps (material.srhsigmap_e)

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

Electron capture cross-section for hole traps (material.srhsigman_h)

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

Hole capture cross-section for hole traps (material.srhsigmap_h)

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

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: Blend effective-medium default
	-- Confidence: Low
	--
	-- Reference:
	-- https://doi.org/10.1039/D4EE02612H
	--
	-- Comments:
	-- Effective donor:acceptor blend value. Local cooling depends on phase,
	-- energetic disorder and density; test 1e-13 to 1e-11 s.

	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: Blend effective-medium default
	-- Confidence: Low
	--
	-- Reference:
	-- https://doi.org/10.1039/D4EE02612H
	--
	-- Comments:
	-- Effective donor:acceptor blend value. Local cooling depends on phase,
	-- energetic disorder and density; test 1e-13 to 1e-11 s.

	local enabled = true
	local value = 1.000000e-12

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

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