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

PDTS-DTffBT material model

1. Introduction

This page contains the OghmaNano material model for PDTS-DTffBT (C56H70F2N2S5Si).

PDTS-DTffBT dithienosilole-alt-(dithienyl-difluorobenzothiadiazole) low-bandgap donor

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


function material.name()
	local enabled = true

	return "PDTS-DTffBT", enabled
end


function material.description()
	local enabled = true

	return "PDTS-DTffBT dithienosilole-alt-(dithienyl-difluorobenzothiadiazole) low-bandgap donor", enabled
end


function material.formula()
	local enabled = true

	-- Nominal / approximate repeat-unit formula (Si-bridged dithienosilole
	-- donor, difluoro-benzothiadiazole acceptor with flanking thiophenes) -
	-- verify against the exact side-chain variant in use.
	return "C56H70F2N2S5Si", enabled
end


function material.Eg(state)
	-- Units: eV
	--
	-- Electrochemical HOMO-LUMO gap (~5.30 - 3.55 = 1.75 eV), self-consistent
	-- with the frontier levels below. The OPTICAL gap is ~1.55-1.60 eV. Values
	-- are taken from the dithienosilole / difluoro-BT family. Varshni does not
	-- apply.
	--
	-- References:
	-- "Optimization of PDTS-DTffBT-Based Solar Cell Performance through Control
	-- of Polymer Molecular Weight", J. Phys. Chem. C, 120, 2016.
	-- DTS-fluoro family (HOMO -5.2 to -5.35 eV, optical gap 1.56-1.60 eV):
	-- Polym. Chem., 6, 2015.

	local enabled = true
	local value = 1.75

	return value, enabled
end


function material.Xi(state)
	-- Electron affinity (LUMO level below vacuum)
	-- Units: eV
	--
	-- Reported LUMO ~-3.55 eV, HOMO ~-5.30 eV (cyclic voltammetry) for the
	-- dithienosilole / difluoro-BT family.
	--
	-- Reference:
	-- Polym. Chem., 6, 2015; J. Phys. Chem. C, 120, 2016.

	local enabled = true
	local value = 3.55

	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
	--
	-- SCLC hole mobility for the DTS / difluoro-BT family is ~1e-4 to 5e-4
	-- cm^2/V/s (=1e-8 to 5e-8 m^2/V/s); FET values can reach ~1e-2 cm^2/V/s.
	-- Representative value used.
	--
	-- Reference:
	-- J. Mater. Chem. C, 2, 2014; Polym. Chem., 6, 2015.

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