common settings

parameter (recommended) value range description
Syntax ‘generic’, ‘front and rear contact unit cell’, ‘front and rear contact full cell’ What syntax to use: ‘generic’ for full functionality or simplified ones for specific scope
DisplayPETSCResiduals 1 / 0* force displing low-level electrical solver progress (useful for checking convergence progress)
CoordinateOutputUnit ‘m’, ‘cm’*, ‘mm’, ‘um’, ‘nm’ sets the unit of coordinates in results file
SaveMaps 1* / 0 whether to force saving map results regardless of resultsfile size; when disabled, Quokka3 automatically decides based on an estimation of the size of the resultsfile
SaveSpatial 1 / 0* whether to force saving spatial results regardless of resultsfile size; when disabled, Quokka3 automatically decides based on an estimation of the size of the resultsfile

Sweep

parameter (recommended) value range description
Enable 1 / 0* whether to perform a sweep
NGroups 1..2 number if independent sweep groups; 1 means group A only, 2 means group A and B; only for Enable = 1
GroupA(isweepA) ; only for Enable = 1
GroupB(isweepB) ; only for Sweep.NGroups = ‘2’

Sweep.GroupA

parameter (recommended) value range description
Parameter any input parameter as a ‘string’
Values vector of values; all vector values within a group must have the same length

Sweep.GroupB

parameter (recommended) value range description
Parameter any input parameter as a ‘string’
Values vector of values; all vector values within a group must have the same length

Optim

parameter (recommended) value range description
Enable 1 / 0* whether to perform an optimization task
Variable(iopt) ; only for Enable = 1
Goal(igoal) define (mutiple) goals; for maximization / minimization exactly one goal has to be used; only for Enable = 1

Optim.Variable

parameter (recommended) value range description
Parameter any input parameter as a ‘string’
Guess guess, used as start value
UpperBound upper bound
LowerBound lower bound
Link(iparam) input parameters linked to the main parameter, i.e. forced to have identical values
parameter (recommended) value range description
Parameter name of linked input parameter

Optim.Goal

parameter (recommended) value range description
Type ‘max’, ‘min’, ‘single’, ‘curve’ what kind of goal to achieve: maximize, minimize, match a single value, or curve-fit to either a curve or map result (line-average over the solution domain size for 3D)
Weight relative weight for this goal for multiple goals
ResultName name of scalar result of underlying simulation (datasetname in h5 file); only for Type = ‘max’, ‘min’, ‘single’
XResultName name of curve result (datasetname in h5 file), or ‘sweep’ to use a sweep parameter as X-values; only for Type = ‘curve’
YResultName name of curve result of underlying simulation (datasetname in h5 file); only for Type = ‘curve’
iSweepA 0..1e+5 this sets the index of the GroupA sweep point to be used for this goal; only for Sweep.Enable = 1 or XResultName = ‘sweep’
iSweepB 0..1e+5 this sets the index of the GroupB sweep point to be used for this goal; only for Sweep.Enable = 1 or Sweep.NGroups = ‘2’
Value ; only for Type = ‘single’
Curve tabular data first column: ; second column: the curve to fit as XY data points; only for Type = ‘curve’
CurveWeightsType ‘equal’, ‘unity’*, ‘user’ how to weight the individual points of this curve; ‘equal’ means all points are weighted with their inverse value (good for large absolute value differences), ‘unity’ means a weight of 1 for all points (better e.g. for a curve getting close to or going through 0), ‘user’ allows to give user-defined weights; only for Type = ‘curve’
CurveWeightsUser vector user-defined weights for the curve fitting; must have exactly the same number of values as the X-values for the curve goal; only for CurveWeightsType = ‘user’
CurveRange ; only for Type = ‘curve’

Optim.Goal(igoal).CurveRange

parameter (recommended) value range description
Enable 1 / 0*
Xmin ; only for Enable = 1
Xmax ; only for Enable = 1

‘generic’ syntax

parameter (recommended) value range description
Domain general domain type and size settings
Solver
Thermal
ExternalCircuit ; only for Solver.Electrical.Enable = 1
Optical
Bulk
SkinFeature(iskin) skin features
ContactFeature(icont) contact features
MetalFeature(imet) metal features
PadFeature(imet) pad features; only for Solver.Electrical.MetalModelType = ‘finite-differences’
Probe(iprobe) a probe senses the surface potential at the defined position; a scalar output for the skin potential, or, if a metal feature is present, of the metal potential is produced
Material

Domain

parameter (recommended) value range description
DeviceType ‘semiconductor device’, ‘resistive device’, ‘semiconductor skin’ type of device to simulate
Dimensions 1..3 domain dimensions; only for DeviceType = ‘semiconductor device’, ‘resistive device’
Wz 0.1..1e+3 um vertical domain size / device thickness; this is the thickness of the device’s bulk material excluding thin films and metal layers, i.e. the wafer thickness; only for DeviceType = ‘semiconductor device’, ‘resistive device’
Wx 1..5e+5 um domain size in first lateral dimension (X-coordinate); only for Dimensions = ‘2’, ‘3’
Wy 1..5e+5 um domain size in second lateral dimension (Y-coordinate); only for Dimensions = ‘3’
MultiDomain set subdomains which represent the full domain to reduce mesh size and increase simulation speed; each subdomain needs to contain both polarity terminals (n-type + p-type pad / metal feature) for a contacted device; only for Dimensions = ‘2’, ‘3’

Domain.MultiDomain

parameter (recommended) value range description
Enable 1 / 0*
SubDomain(idomain) ; only for Enable = 1

Domain.MultiDomain.SubDomain

parameter (recommended) value range description
AreaFraction 0..1 area fraction of the full domain this subdomain is representing
OriginX 0..2e+5 um X-coordinate origin position
SizeX 1..2e+5 um X-coordinate size
OriginY 0..2e+5 um Y-coordinate origin position; only for Domain.Dimensions = ‘3’
SizeY 1..2e+5 um Y-coordinate size; only for Domain.Dimensions = ‘3’
IsInner 1 / 0* whether this subdomain represents solely the inner cell region; if set to true, the edge losses will be quantified by this subdomain’s power difference to the full cell

Solver

parameter (recommended) value range description
SolutionType ‘single JV-point’, ‘Tc light JV’, ‘dark JV-curve’, ‘light JV-curve’, ‘sunsVoc-curve’, ‘QE-curve’, ‘Rs-curve’, ‘Rs-MPP’, ‘EL-PL’, ‘transient’, ‘skin single-point’, ‘skin QE-curve’, ‘Resistance’, ‘RAT’, ‘meshing only’ The solution type defines what characteristic of the device to model, i.e. what kind of output to generate
JVCurve ; only for SolutionType = ‘light JV-curve’, ‘dark JV-curve’
SunsVocCurve ; only for SolutionType = ‘sunsVoc-curve’
SingleJVPoint ; only for SolutionType = ‘single JV-point’
QECurve ; only for SolutionType = ‘QE-curve’, ‘skin QE-curve’
RsCurve
Tc
ELPL ; only for SolutionType = ‘EL-PL’
Electrical ; not for SolutionType = ‘RAT’
Illumination
PhotonRecycling
Luminescence
Skin ; only for SolutionType = ‘skin single-point’, ‘skin QE-curve’
Transient ; only for SolutionType = ‘transient’

Solver.JVCurve

parameter (recommended) value range description
VtermStepSize ‘coarse’*, ‘standard’, ‘fine’, ‘user’ how finely to place points on the JV curve; note that the light JV-curve algorithm will accuratyl determine Voc, Jsc and MPP regardless of this setting
VtermUser vector 0..2 V ; only for VtermStepSize = ‘user’

Solver.SunsVocCurve

parameter (recommended) value range description
SunsStepSize ‘coarse’, ‘standard’*, ‘fine’, ‘user’ how finely to place points on the suns-Voc curve
SunsUser vector 1e-6..10 ; only for SunsStepSize = ‘user’

Solver.SingleJVPoint

parameter (recommended) value range description
Type ‘Vintern’, ‘Vterm’, ‘Jterm’, ‘OC’, ‘MPP’, ‘Jsc’, ‘pMPP’
Vintern 0..2 V ; only for Type = ‘Vintern’
Vterm 0..2 V ; only for Type = ‘Vterm’
Jterm -200..200 mA/cm2 ; only for Type = ‘Jterm’

Solver.QECurve

parameter (recommended) value range description
Type ‘biased’, ‘unbiased’
Side ‘front’, ‘rear’ ; not for …SolutionType = ‘skin QE-curve’
MonochromaticIlluminationType ‘constant Jgen’*, ‘Jph’
JgenMonochromatic 0..100 mA/cm2 monochromatic generation current density; additional for ‘biased’, total for ‘unbiased’; only for MonochromaticIlluminationType = ‘constant Jgen’
Jph tabular data first column: 250..1.8e+3 nm; second column: 0..10 mA/cm2 monochromatic illumination current density as a function of wavelength; only for MonochromaticIlluminationType = ‘Jph’
WavelengthStepSize ‘coarse’, ‘standard’*, ‘fine’, ‘user’ how finely to place points on the QE curve
WavelengthUser vector 250..1.2e+3 nm ; only for WavelengthStepSize = ‘user’
OperatingPoint ‘Vintern’, ‘Vterm’, ‘Jterm’, ‘MPP’, ‘Jsc’* at which operating point to perform QE simulation; defaults to Jsc which yields same results as zero terminal voltage, whereas the latter results in convergence problems
Vintern 0..2 V ; only for OperatingPoint = ‘Vintern’
Vterm 0..2 V ; only for OperatingPoint = ‘Vterm’
Jterm 0..200 mA/cm2 ; only for OperatingPoint = ‘Jterm’

Solver.RsCurve

parameter (recommended) value range description
VtermStepSize ‘coarse’*, ‘standard’, ‘fine’, ‘user’ how finely to place points on the JV curve; note that the light JV-curve algorithm will accuratyl determine Voc, Jsc and MPP regardless of this setting
VtermUser vector 0..2 V ; only for VtermStepSize = ‘user’

Solver.Tc

parameter (recommended) value range description
DeltaT -10..10 K ; only for …SolutionType = ‘Tc light JV’

Solver.ELPL

parameter (recommended) value range description
Type ‘PL’, ‘EL-Vterm’, ‘EL-Jterm’, ‘general-Vterm’, ‘general-Jterm’, ‘general-MPP’, ‘general-Jsc’ what terminal condition to apply; ‘PL’ means open-circuit with illumination, ‘EL’-types mean without illumination, ‘general’-types mean user-defined illumination and terminal condition; ‘Vterm’-types apply a defined terminal voltage, ‘Jterm’-types a defined terminal current density, ‘MPP’ means maximum power point, ‘Jsc’ means Jsc condition (i.e. NOT strictly short-circuit)
Vterm 0..2 V terminal voltage; only for ..Type = ‘EL-Vterm’, ‘general-Vterm’
Jterm 0..200 mA/cm2 terminal current density; only for ..Type = ‘EL-Jterm’, ‘general-Jterm’

Solver.Electrical

parameter (recommended) value range description
Enable 1* / 0 wether to solve electrical carrier transportonly if not determined by the solution type
VocGuess 0.2..0.68*..2.5 V guess of Voc; a good guess might help convergence and speed; for tandem / multijunction simulations, this Voc refers to the main subcell only
SkinJ0nieff only if any of the skin’s recombination is defined via a J0
MetalModelType ‘finite-differences’, ‘constant-potential’ ‘finite-differences’ includes metal layer in carrier transport modeling; ‘constant-potential’ sets the metal layer to uniform potential with the respective polarity (i.e. disables lateral current transport losses in metal); only for Domain.DeviceType = ‘semiconductor device’, ‘resistive device’
NPMetalPadContact ‘error’*, ‘isolated’, ‘contact’ defines the behavior for the case that a PadFeature covers a MetalFeatures with opposite polarity; ‘error’: gives error, ‘isolated’: assumes perfect isolation, ‘contact’: allows current flow over the defined contact resistivity of the pad; only for Domain.DeviceType = ‘semiconductor device’
BulkModelType ‘quasi-neutral’*, ‘full’, ‘equivalent-circuit’ whether to model the bulk with the simplified quasi-neutral drift-diffusion model (=skin concept), or using the full drift-diffusion model (only in 1D), or as an equivalent circuit model (fastest, but neglegts vertical transport and current crowding effects); only for Domain.DeviceType = ‘semiconductor device’

Solver.Electrical.SkinJ0nieff

parameter (recommended) value range description
Type ‘user-T’, ‘user-const’ how to set the value for nieff which was assumed during determination of J0 values; ‘user-T’ uses the material models for determining nieff for the given temperature
T 293..300 K temperature assumed during determination J0 values; only for Type = ‘user-T’
Const 8e+9..1.200e+10 cm-3 nieff assumed during determination J0 values; only for Type = ‘user-const’

Solver.Illumination

parameter (recommended) value range description
Enable 1 / 0 wether to solve illumination / generationonly if if not determined by the solution type

Solver.PhotonRecycling

parameter (recommended) value range description
Enable 1 / 0* wether to account for reabsorption of radiative recombination contributing to generation); only for Solver.Electrical.Enable = 1

Solver.Luminescence

parameter (recommended) value range description
Enable 1 / 0* wether to solve luminescenceonly if not determined by solution type, or if photon recycling is enabled

Solver.Skin

parameter (recommended) value range description
Name name of SkinFeature to be solved
QFPsplit 0..2 V bulk-side quasi-Fermi level split
Jskin -100..0*..100 mA/cm2 net current density through skin

Solver.Transient

parameter (recommended) value range description
StartType ‘standard’, ‘intrinsic’, ‘Vterm’, ‘Jterm’, ‘OC’ defines the steady-state condition at t = 0: ‘standard’ uses the first JVinput data point, ‘intrinsic’ means dark open-circuit conditions
VtermStart 0..2 V ; only for StartType = ‘Vterm’
JtermStart -200..200 mA/cm2 ; only for StartType = ‘Jterm’
TimeSpan 0..1.000e+10 s total time span to simulate
JVType ‘Vterm’, ‘Jterm’, ‘OC’ whether a transiently varying terminal voltage or current density is applied, or whether open-circuit is assumed
Vterm tabular data first column: 0..200 s; second column: 0..2 V terminal voltage as a function of time; only for JVType = ‘Vterm’
Jterm tabular data first column: 0..200 s; second column: -200..200 mA/cm2 terminal current density as a function of time; set to zero to simulate a device at open-circuit; only for JVType = ‘Jterm’
GenerationScale tabular data first column: 0..200 s; second column: 0..10 scaling factor for the optical generation as a function of time; only for Solver.Illumination.Enable = 1
SnapshotTimes vector 0..0*..1.000e+10 s time points at which to store spatial data in the results files
MaxChange 0..0.2*..1 maximum allowed change of charge carrier densities during a single time-step; a lower value results in smaller time-steps, i.e. more stable simulation at the cost of higher computation time
Inflation 1..1.3*..2 by how much a subsequent time-step can be increased relative to the former one; a lower value results in smaller time-steps, i.e. more stable simulation at the cost of higher computation time
MaxTimeStep 0..1.000e+10*..1.000e+10 s sets an upper limit to any time-step; a lower value results in smaller time-steps, i.e. more stable simulation at the cost of higher computation time
MaxInitialTimeStep 0..1e-8*..1e-4 s sets an upper limit to the initial time-step; a lower value results in smaller time-steps, i.e. more stable simulation at the cost of higher computation time
Theta 0..0.55*..1 factor influencing the time integration method: 1 means fully implicit, 0 means fully explicit, 0.5 means Crank-Nicolson

Thermal

parameter (recommended) value range description
T 250..298.2*..350 K device temperature

ExternalCircuit

parameter (recommended) value range description
Enable 1 / 0* ; only for Domain.DeviceType = ‘semiconductor device’, ‘resistive device’
Rseries 0..10 Ohmcm2 series resistance additional to series-resistance effects within solution domain; only for Enable = 1
Rshunt 100..1.000e+10 Ohmcm2 shunt / parallel resistance; only for Enable = 1
DiodeJ0 0..1e-4 Acm-2 saturation current density of external diode; only for Enable = 1
DiodeIdeality 1..3 ideality factor of external diode; only for Enable = 1

Optical

parameter (recommended) value range description
Luminescence ; only for Solver.Luminescence.Enable = 1
GenerationModelType ‘defined-generation’, ‘Text-Z’, ‘SunSolve’ how to model generation, either by user-defined generation rate, or using the Text-Z model; if selecting ‘SunSolve’, ray-tracing results from the PV Lighthouse SunSolveTM can be easily imported to Quokka3; only for Solver.Illumination.Enable = 1
DefinedGeneration settings for user-defined generation rate; only for GenerationModelType = ‘defined-generation’
CorrectToKnownJgen 1 / 0* scales the generation profile to match a known generation current density; useful to correct for numerical errors (from interpolation and integration); note that this is current density AFTER scaling with FrontIllumination.Scale / RearIllumination.Scale, but before ScaleGeneration; only for Solver.Illumination.Enable = 1
Jgen 0.1..100 mAcm-2 known generation current density; only for ..CorrectToKnownJgen = 1
ScaleGeneration 0.01..1*..5 scales the generation for the main purpose of empirically matching Jsc; this does not scale the illumination for efficiency calculation: if you want correct efficiency as a function of illumination (=suns), scale the illumination instead; only for Solver.Illumination.Enable = 1
FrontIllumination ; only for ..GenerationModelType = ‘Text-Z’, ‘SunSolve’
RearIllumination ; only for ..GenerationModelType = ‘Text-Z’, ‘SunSolve’
MonochromaticIllumination additional monochromatic illumination; used e.g. by QE solution types; only for ..GenerationModelType = ‘Text-Z’, ‘SunSolve’
Illumination
TextZ ; only for Optical.GenerationModelType = ‘Text-Z’ or Optical.Luminescence.ReabsorptionModelType = ‘Text-Z’
SunSolve Define the solar cell’s optical properties, excluding illumination settings, via importing a SunSolve (by PVLightouse) file; only for Optical.GenerationModelType = ‘SunSolve’

Optical.Luminescence

parameter (recommended) value range description
ReabsorptionModelType ‘Text-Z’, ‘ideal’* how to account for reasborption: either modeled via the ‘Text-Z’ model, or assuming ideal Lambertian surfaces
Scale 0..1*..1e+15 simply scales the resulting luminescence signal; useful to calibrate to experimental units like counts / pixel / second
OpticsAcceptanceAngle 0..1*..1 sr solid angle of acceptance of the detection optics in steradian, should not be larger than one as a large value will invalidate some modeling assumptions
OpticsTransmission tabular data first column: 250..1.8e+3 nm; second column: 0..1*..1 spectral transmission of the detection optics, including filter transmission
SensorEQE
DetectionSide ‘front’*, ‘rear’ on which side the luminescence signal should be detected
WavelengthRangeType ‘auto’*, ‘user’ defines at which wavelengths to perform luminescence modeling
WavelengthRangeUser vector 250..1.5e+3 nm user-defined wavelength range; only for WavelengthRangeType = ‘user’

Optical.Luminescence.SensorEQE

parameter (recommended) value range description
Type ‘typical-Si’*, ‘user’ EQE of the sensor / camera / detector; ‘typical-Si’ assumes Lambert-Beer absorption in a 55um thick Si sensor
User tabular data first column: 250..1.8e+3 nm; second column: 0..1 ; only for Type = ‘user’

Optical.DefinedGeneration

parameter (recommended) value range description
Type ‘uniform-G’, ‘uniform-Jgen’, ‘profile’ how to define the generation rate, either uniform with user-defined generation rate or current density, or from generation profile
UniformG 0..1e+19 cm-3s-1 uniform generation rate; only for Type = ‘uniform-G’
UniformJgen 0..1e+5 mA/cm2 generation current density; for tandem: in the main cell containting the bulk material; only for Type = ‘uniform-Jgen’
UniformJgenFrontSubcell 0..0*..1e+5 mA/cm2 generation current density in the front subcell(s); only for Type = ‘uniform-Jgen’
UniformJgenRearSubcell 0..0*..1e+5 mA/cm2 generation current density in the rear subcell(s); only for Type = ‘uniform-Jgen’
Profile tabular data first column: 0..1e+3 um; second column: 0..1e+22 cm-3s-1 generation profile; only for Type = ‘profile’
IlluminationSide ‘front’*, ‘rear’ which side of the device is illuminated, i.e. the side which corresponds to the zero depth value of the input profile
IlluminationIntensity 0..100*..1e+3 mW/cm2 illumination intensity required for efficiency calculation; set to 0 if unknown to not calculate efficiency

Optical.FrontIllumination

parameter (recommended) value range description
Enable 1 / 0* enable or disable illumination on the respective side
Scale 0..1*..10 scaling factor of the illumination; equivalent to suns (only!) if the defined spectrum represents one sun
Spectrum tabular data first column: 250..5e+3 nm; second column: 0..0*..100 mWcm-2nm-1 illumination spectrum; only for ..Enable = 1
Shape ‘full’*, ‘rectangle’, ‘circle’
PositionX -1e+6..1e+6 um ; not for Shape = ‘full’
PositionY -1e+6..1e+6 um ; not for Shape = ‘full’ or Domain.Dimensions = ‘3’
SizeX 1..1e+6 um ; only for Shape = ‘rectangle’
SizeY 1..1e+6 um ; only for Shape = ‘rectangle’ or Domain.Dimensions = ‘3’
Diameter 1..1e+6 um ; only for Shape = ‘circle’

Optical.RearIllumination

parameter (recommended) value range description
Enable 1 / 0* enable or disable illumination on the respective side
Scale 0..1*..10 scaling factor of the illumination; equivalent to suns (only!) if the defined spectrum represents one sun
Spectrum tabular data first column: 250..5e+3 nm; second column: 0..0*..100 mWcm-2nm-1 illumination spectrum; only for ..Enable = 1
Shape ‘full’*, ‘rectangle’, ‘circle’
PositionX -1e+6..1e+6 um ; not for Shape = ‘full’
PositionY -1e+6..1e+6 um ; not for Shape = ‘full’ or Domain.Dimensions = ‘3’
SizeX 1..1e+6 um ; only for Shape = ‘rectangle’
SizeY 1..1e+6 um ; only for Shape = ‘rectangle’ or Domain.Dimensions = ‘3’
Diameter 1..1e+6 um ; only for Shape = ‘circle’

Optical.MonochromaticIllumination

parameter (recommended) value range description
Enable 1 / 0* enable / disable monochromatic illumination; not for Solver.SolutionType = ‘QE-curve’, ‘skin QE-curve’
Side ‘front’, ‘rear’ on which side monochromatic illumination is applied; for a QE-curve, the side is determined by Solver.QECurve.Side instead; only for ..Enable = 1
Wavelength 250..2e+3 nm wavelength for monochromatic illumination; only for ..Enable = 1
Flux 1e+15..1e+18 cm-2s-1 photon flux for monochromatic illumination; only for ..Enable = 1
Shape ‘full’*, ‘rectangle’, ‘circle’
PositionX -1e+6..1e+6 um ; not for Shape = ‘full’
PositionY -1e+6..1e+6 um ; not for Shape = ‘full’ or Domain.Dimensions = ‘3’
SizeX 1..1e+6 um ; only for Shape = ‘rectangle’
SizeY 1..1e+6 um ; only for Shape = ‘rectangle’ or Domain.Dimensions = ‘3’
Diameter 1..1e+6 um ; only for Shape = ‘circle’

Optical.Illumination

parameter (recommended) value range description
WavelengthRangeType ‘auto’*, ‘user’ defines at which wavelengths to solve generation
WavelengthRangeUser vector 250..1.5e+3 nm user-defined wavelength range; only for WavelengthRangeType = ‘user’

Optical.TextZ

parameter (recommended) value range description
FrontText external transmission of the front side; only for Optical.FrontIllumination.Enable = 1 or Optical.Luminescence.DetectionSide = ‘front’ or Solver.QECurve.Side = ‘front’
RearText external transmission of the rear side; only for Optical.RearIllumination.Enable = 1 or Optical.Luminescence.DetectionSide = ‘rear’ or Solver.QECurve.Side = ‘rear’
FrontZ light-trapping / pathlength enhancement settings for front illumination; only for Optical.FrontIllumination.Enable = 1 or Optical.Luminescence.DetectionSide = ‘front’ or Solver.QECurve.Side = ‘front’ or Domain.DeviceType = ‘semiconductor device’
RearZ light-trapping / pathlength enhancement settings for front illumination; only for Optical.RearIllumination.Enable = 1 or Optical.Luminescence.DetectionSide = ‘rear’ or Solver.QECurve.Side = ‘rear’ or Domain.DeviceType = ‘semiconductor device’
Basore settings to calculate light trapping (Z) via the extended Basore model; only for Optical.TextZ.FrontZ.Type = ‘Basore’, ‘from FrontRtot’, ‘from RearRtot’, ‘from FrontRtot and RearRtot’ or Optical.TextZ.RearZ.Type = ‘Basore’, ‘from FrontRtot’, ‘from RearRtot’, ‘from FrontRtot and RearRtot’
FrontRtot tabular data first column: 200..2.5e+3 nm; second column: 0..1 measured total reflection, including escape reflection, used for determining Text and / or Z; only for Optical.TextZ.FrontText.Type = ‘from Rtot’ or Optical.TextZ.FrontZ.Type = ‘from FrontRtot’ or Optical.TextZ.RearZ.Type = ‘from FrontRtot’ or Optical.TextZ.FrontZ.Type = ‘from FrontRtot and RearRtot’ or Optical.TextZ.RearZ.Type = ‘from FrontRtot and RearRtot’
RearRtot tabular data first column: 200..2.5e+3 nm; second column: 0..1 measured total reflection, including escape reflection, used for determining Text and / or Z; only for Optical.TextZ.RearText.Type = ‘from Rtot’ or Optical.TextZ.FrontZ.Type = ‘from RearRtot’ or Optical.TextZ.RearZ.Type = ‘from RearRtot’ or Optical.TextZ.FrontZ.Type = ‘from FrontRtot and RearRtot’ or Optical.TextZ.RearZ.Type = ‘from FrontRtot and RearRtot’

Optical.TextZ.FrontText

parameter (recommended) value range description
Type ‘Text’*, ‘from Rtot’, ‘local’ wether to directly set Text, or let Quokka3 determine it from the total reflection Rtot (and Aext), or set to ‘local’ to define Text for each skin individually
Text tabular data first column: 200..1.8e+3 nm; second column: 0..1 external transmission including Aext (and Agen, if a subcell is present on this side); only for Type = ‘Text’
Aext tabular data first column: 200..2.5e+3 nm; second column: 0..0*..1 absorption in illuminated side films during first light pass (usually non-zero only for short-wavelength region); if Text is determined from Rtot, Aext must still be defined here, as Aext can not (yet) automatically be determined from the total reflection; not for Type = ‘local’
Agen tabular data first column: 200..2.5e+3 nm; second column: 0..0*..1 active absorption in illuminated side subcell as contained in Text, applied only if the skin contains a subcell within a tandem simulation
FacetAngle 0..90 deg characteristic facet angle of surface morphology; only for Type = ‘from Rtot’, ‘Text’ or Optical.TextZ.FrontZ.Type = ‘from FrontRtot’ or Optical.TextZ.RearZ.Type = ‘from FrontRtot’ or Optical.TextZ.FrontZ.Type = ‘from FrontRtot and RearRtot’ or Optical.TextZ.RearZ.Type = ‘from FrontRtot and RearRtot’
IncludeShading 1 / 0* whether to lump the metal shading fraction determined by the metal correction of Rtot effectively into Text; this should be enabled e.g. for a 1D simulation with an Rtot measurement including metal reflection, to consider the influence of shading on absorption (=generation current) and transmission; only for Type = ‘from Rtot’

Optical.TextZ.RearText

parameter (recommended) value range description
Type ‘Text’*, ‘from Rtot’, ‘local’ wether to directly set Text, or let Quokka3 determine it from the total reflection Rtot (and Aext), or set to ‘local’ to define Text for each skin individually
Text tabular data first column: 200..1.8e+3 nm; second column: 0..1 external transmission including Aext (and Agen, if a subcell is present on this side); only for Type = ‘Text’
Aext tabular data first column: 200..2.5e+3 nm; second column: 0..0*..1 absorption in illuminated side films during first light pass (usually non-zero only for short-wavelength region); if Text is determined from Rtot, Aext must still be defined here, as Aext can not (yet) automatically be determined from the total reflection; not for Type = ‘local’
Agen tabular data first column: 200..2.5e+3 nm; second column: 0..0*..1 active absorption in illuminated side subcell as contained in Text, applied only if the skin contains a subcell within a tandem simulation
FacetAngle 0..90 deg characteristic facet angle of surface morphology; only for Type = ‘from Rtot’, ‘Text’ or Optical.TextZ.FrontZ.Type = ‘from RearRtot’ or Optical.TextZ.RearZ.Type = ‘from RearRtot’ or Optical.TextZ.FrontZ.Type = ‘from FrontRtot and RearRtot’ or Optical.TextZ.RearZ.Type = ‘from FrontRtot and RearRtot’
IncludeShading 1 / 0* whether to lump the metal shading fraction determined by the metal correction of Rtot effectively into Text; this should be enabled e.g. for a 1D simulation with an Rtot measurement including metal reflection, to consider the influence of shading on absorption (=generation current) and transmission; only for Type = ‘from Rtot’

Optical.TextZ.FrontZ

parameter (recommended) value range description
Type ‘user’, ‘parameterization’, ‘4n2-limit’, ‘Green02-limit’, ‘Basore’, ‘from FrontRtot’, ‘from RearRtot’, ‘from FrontRtot and RearRtot’, ‘local’ how to define light-trapping / the pathlength enhancement factor; ‘local’ means using the internal optical properties of the skins, which means using the Basore model in case of lumped internal optical properties; the ‘from Rtot’ options fit the Basore model to Rtot (may be fitted to both sides Rtot for better fit accuracy)
User tabular data first column: 0..1e+7 cm-1; second column: 1..100 define Z as a function of absorption coefficient [cm-1]; only for Type = ‘user’
Z0 1..100 Z parameter representing the low absorption limit (near band gap); only for Type = ‘parameterization’
Zinf 1..10 Z parameter representing the high absorption limit; only for Type = ‘parameterization’
Zp 1..10 parameter influencing the trend between Z0 and Zinf; only for Type = ‘parameterization’

Optical.TextZ.RearZ

parameter (recommended) value range description
Type ‘user’, ‘parameterization’, ‘4n2-limit’, ‘Green02-limit’, ‘Basore’, ‘from FrontRtot’, ‘from RearRtot’, ‘from FrontRtot and RearRtot’, ‘local’ how to define light-trapping / the pathlength enhancement factor; ‘local’ means using the internal optical properties of the skins, which means using the Basore model in case of lumped internal optical properties; the ‘from Rtot’ options fit the Basore model to Rtot (may be fitted to both sides Rtot for better fit accuracy)
User tabular data first column: 0..1e+7 cm-1; second column: 1..100 define Z as a function of absorption coefficient [cm-1]; only for Type = ‘user’
Z0 1..100 Z parameter representing the low absorption limit (near band gap); only for Type = ‘parameterization’
Zinf 1..10 Z parameter representing the high absorption limit; only for Type = ‘parameterization’
Zp 1..10 parameter influencing the trend between Z0 and Zinf; only for Type = ‘parameterization’

Optical.TextZ.Basore

parameter (recommended) value range description
Front
Rear
Optical.TextZ.Basore.Front
parameter (recommended) value range description
RintIdeal 1 / 0* when enabled, the internal reflection will is set the the ideal Lambertian limit: Rint = 1-1/n^2; only for Optical.TextZ.FrontZ.Type = ‘Basore’ or Optical.TextZ.RearZ.Type = ‘Basore’
Rint 0..1 internal reflection; nth pass only if RintFirstEnable is enabled; on the illuminated side, Rint will internally be limited to the Lambertian limit of 1-n^2 to ensure physical consistency; not for RintIdeal = 1 or Optical.TextZ.FrontZ.Type = ‘Basore’ or Optical.TextZ.RearZ.Type = ‘Basore’
RintFirstEnable 1 / 0* enable setting the first-pass internal reflection different to subsequent passes; not for RintIdeal = 1 or Optical.TextZ.FrontZ.Type = ‘Basore’ or Optical.TextZ.RearZ.Type = ‘Basore’
RintFirst 0..1 ; only for RintFirstEnable = 1
Diffuse 1 / 0 whether internal reflection is diffuse (fully scattered)
Scatter 1 / 0* whether incident light is fully scattered during the first external pass
ApppType ‘user’*
Appp 0..0*..1 parasitic absorption fraction per perpendicular pass through this skin; only for ApppType = ‘user’
Optical.TextZ.Basore.Rear
parameter (recommended) value range description
RintIdeal 1 / 0* when enabled, the internal reflection will is set the the ideal Lambertian limit: Rint = 1-1/n^2; only for Optical.TextZ.FrontZ.Type = ‘Basore’ or Optical.TextZ.RearZ.Type = ‘Basore’
Rint 0..1 internal reflection; nth pass only if RintFirstEnable is enabled; on the illuminated side, Rint will internally be limited to the Lambertian limit of 1-n^2 to ensure physical consistency; not for RintIdeal = 1 or Optical.TextZ.FrontZ.Type = ‘Basore’ or Optical.TextZ.RearZ.Type = ‘Basore’
RintFirstEnable 1 / 0* enable setting the first-pass internal reflection different to subsequent passes; not for RintIdeal = 1 or Optical.TextZ.FrontZ.Type = ‘Basore’ or Optical.TextZ.RearZ.Type = ‘Basore’
RintFirst 0..1 ; only for RintFirstEnable = 1
Diffuse 1 / 0 whether internal reflection is diffuse (fully scattered)
Scatter 1 / 0* whether incident light is fully scattered during the first external pass
ApppType ‘user’*
Appp 0..0*..1 parasitic absorption fraction per perpendicular pass through this skin; only for ApppType = ‘user’

Optical.SunSolve

parameter (recommended) value range description
File .sun file exported from SunSolve
InputType ‘auto’*, ‘Text-Z’, ‘generation-profile’ whether to use the generation profile or the Text-Z properties from the SunSolve file; if set to ‘auto’, Quokka3 chooses the best option (prioritizing Text-Z) depending on availbility of the data in the SunSolve file

Bulk

parameter (recommended) value range description
Mesh ; only for Domain.DeviceType = ‘semiconductor device’, ‘resistive device’
Electrical ; only for Solver.Electrical.Enable = 1
Material
BackgroundDoping

Bulk.Mesh

parameter (recommended) value range description
Quality ‘coarse’*, ‘standard’, ‘fine’, ‘very-fine’, ‘user’ how fine to discretize; note that the automatic meshing is scoped in such way that a ‘coarse’ mesh will result in sufficient numerical accuracy in most cases, and is thus the default
dzmin 1e-4..10 um minimum vertical element size; z - direction; only for Quality = ‘user’
dzmax 1..1e+4 um maximum vertical element size; z - direction; only for Quality = ‘user’
dzProfile tabular data first column: 0..1e+6 um; second column: 1e-4..1e+18*..10 um upper limit of vertical element size as a function of depth from the surface (front surface for bulk mesh, outer surface for skin mesh); defaults to a very high value which has no effect
inflation 1..4 maximum allowed ratio in size of neighboring elements; only for Quality = ‘user’
resolution 3..30 minimum amount of elements between any feature edges; only for Quality = ‘user’
dxmin 0.1..10 um minimum lateral element size; x - direction; only for Quality = ‘user’
dxmax 1..1e+4 um maximum lateral element size; x - direction; only for Quality = ‘user’
dymin 0.1..10 um minimum lateral element size; y - direction; only for Quality = ‘user’
dymax 1..1e+4 um maximum lateral element size; y - direction; only for Quality = ‘user’
dedgemin 0.1..1*..10 um minimum lateral element size at non-symmetry edges; only for Quality = ‘user’

Bulk.Electrical

parameter (recommended) value range description
EQCInputType ‘semiconductor properties’*, ‘J0’ how to define the bulk properties in case of equivalant-circuit bulk modeling; either via the semiconductor properties same as for drift-diffusion (band-gap, DOS, SRH defects etc.) or via an effective J0; only for Solver.Electrical.BulkModelType = ‘equivalent-circuit’
J0 A/cm2 J0 value effectively representing bulk recombination; only for EQCInputType = ‘J0’
J0Ideality 0..1*..2 ; only for EQCInputType = ‘J0’
Recombination ; only for Domain.DeviceType = ‘semiconductor skin’ or Solver.Electrical.BulkModelType = ‘quasi-neutral’, ‘full’ or EQCInputType = ‘semiconductor properties’

Bulk.Electrical.Recombination

parameter (recommended) value range description
Type ‘off’, ‘intrinsic’, ‘intrinsic plus SRH’, ‘fixed-lifetime’, ‘intrinsic plus fixed-lifetime’, ‘lifetime-curve’, ‘lifetime-images’
SRH(iSRH) SRH recombination; only for Type = ‘intrinsic plus SRH’
FixedLifetime 0.01..1e+5 us fixed lifetime; only for Type = ‘fixed-lifetime’, ‘intrinsic plus fixed-lifetime’
LifetimeCurve tabular data first column: 1e+5..1e+18 cm-3; second column: 1..1e+5 us bulk lifetime as a function of excess carrier density including intrinsic recombination; only for Type = ‘lifetime-curve’
LifetimeImages ; only for Type = ‘lifetime-images’
Bulk.Electrical.Recombination.SRH
parameter (recommended) value range description
Type ‘tau-Et’, ‘sigma-Et-Nt’, ‘sigma-Et-Nt-general’, ‘BO-Altermatt2011’, ‘inactive-doping’ how to model SRH recombination; SRH settings are only applied for the ‘intrinsic plus SRH’ recombination type; the ‘sigma-Et-Nt-general’ type uses the general SRH formalism and can be set for a single defect and for 1D simulations only; all other types use the simplified SRH formalism
Et_Ei -1..1 eV defect energy level relative to intrinsic energy; only for Type = ‘tau-Et’, ‘sigma-Et-Nt’, ‘sigma-Et-Nt-general’, ‘inactive-doping’
taun 0.01..1e+5 us fundamental electron lifetime; only for Type = ‘tau-Et’
taup 0.01..1e+5 us fundamental hole lifetime; only for Type = ‘tau-Et’
NtType ‘fixed’*, ‘profile’ whether the defect density is given as a fixed value, or as function of depth; only for Type = ‘sigma-Et-Nt’, ‘sigma-Et-Nt-general’
Nt 0..1e+17 cm-3 fixed defect density; only for NtType = ‘fixed’
NtProfile tabular data first column: 0..1e+3 um; second column: 0..1e+17 cm-3 defect density as a function of depth; only for NtType = ‘profile’
sigman 1e-21..1e-9 cm2 electron capture cross section; only for Type = ‘sigma-Et-Nt’, ‘sigma-Et-Nt-general’, ‘inactive-doping’
sigmap 1e-21..1e-9 cm2 hole capture cross section; only for Type = ‘sigma-Et-Nt’, ‘sigma-Et-Nt-general’, ‘inactive-doping’
vth 1e+5..2e+7*..1e+9 cms-1 thermal velocity for this defect; only for Type = ‘sigma-Et-Nt’, ‘sigma-Et-Nt-general’, ‘inactive-doping’
vthTdep 1 / 0* whether to model temperature dependence of the thermal velocity via scaling vth by sqrt(T/300K); if disabled, vth is constant; only for Type = ‘sigma-Et-Nt’, ‘sigma-Et-Nt-general’, ‘inactive-doping’
BO_Oi 0..1e+17 cm-3 oxygen concentration; only for Type = ‘BO-Altermatt2011’
BO_m 1..3 process related scaling parameter for degreaded lifetime; only for Type = ‘BO-Altermatt2011’
BO_DeactivationFraction 0..1 fraction of deactivated BO defect; only for Type = ‘BO-Altermatt2011’
Bulk.Electrical.Recombination.LifetimeImages
parameter (recommended) value range description
ImageList(iimg) list of lifetime images at different illumination intensities / generation rates
PixelSize 1..1e+3 um size of the square area represented by one pixel
SplitIntrinsic 1* / 0 splits the lifetime into the intrinsc part (Auger and radiative recombination) and remaining extrinsic part; useful for more physical loss analysis and extrapolation in high-injection; must be disabled if the lifetime exceeds the intrinsic limit; WARNING: must be enabled when detailed skins are used, as Auger recombination due to high doping will otherwise be missing
MinimumLifetime 0.01..1*..10 us minimum local lifetime applied as a lower cut-off when importing lifetime images; (very low local lifetime values can result in convergence problems)
Smoothing 1* / 0 smooth each pixel’s lifetime-curve
OutlayerThreshhold 0..1*..1 frac threshhold for outlayer removal: if a pixel’s lifetime value deviates more than this percentage from the average of the two neighboring injection level one’s, it is set to this average; set to a very high value to effectively disable outlayer removal
Bulk.Electrical.Recombination.LifetimeImages.ImageList
parameter (recommended) value range description
File name of image file containing bulk lifetime as a 2D array either as *.tif file or as delimited ascii text file; unit of lifetime must be microseconds; expects total lifetime including intrinsic recombination
GenerationRate 1.000e+10..1.000e+20 cm-3s-1 generation rate for this image

Bulk.BackgroundDoping

parameter (recommended) value range description
SettingType ‘dopingtype-resistivity’, ‘NA-ND’* whether doping is set via the doping type and a resistivity value, or directly via acceptor and donor concentrations; only for Domain.DeviceType = ‘semiconductor device’, ‘semiconductor skin’
DopingType ‘n-type’, ‘p-type’ doping type; only for SettingType = ‘dopingtype-resistivity’
Resistivity 0.1..100 Ohmcm ; only for SettingType = ‘dopingtype-resistivity’ or Domain.DeviceType = ‘resistive device’
NA 0..1e+17 cm-3 acceptor concentration; only for SettingType = ‘NA-ND’
ND 0..1e+17 cm-3 donor concentration; only for SettingType = ‘NA-ND’

SkinFeature

parameter (recommended) value range description
Name name of feauture, used in geometry plots and loss analysis
Geometry ; only for Domain.DeviceType = ‘semiconductor device’, ‘resistive device’
OpticalModelType ‘lumped’* ; only for Solver.Illumination.Enable = 1 or Optical.Luminescence.ReabsorptionModelType = ‘TextZ’
ElectricalModelType ‘lumped’*, ‘detailed’ whether to model the skin by lumped inputs or detailed inputs, the latter using the multiscale approach for a semiconductor device; ‘detailed’ is only supported for front and rear side skins; only for Solver.Electrical.Enable = 1
Lumped
Layer(ilay)
Detailed ; only for ..ElectricalModelType = ‘detailed’

SkinFeature(iskin).Geometry

parameter (recommended) value range description
Shape ‘full’, ‘rectangle’, ‘circle’ ; not for Domain.Dimensions = ‘1’
Plane ‘front’, ‘rear’, ‘east’, ‘west’, ‘north’, ‘south’
PositionX -1e+6..1e+6 um ; not for Shape = ‘full’ or Plane = ‘front’, ‘rear’, ‘north’, ‘south’
PositionY -1e+6..1e+6 um ; not for Shape = ‘full’ or Plane = ‘front’, ‘rear’, ‘east’, ‘west’ or Domain.Dimensions = ‘3’
PositionZ -1e+6..1e+6 um ; not for Shape = ‘full’ or Plane = ‘east’, ‘west’, ‘north’, ‘south’
SizeX 1..1e+6 um ; only for Shape = ‘rectangle’ or Plane = ‘front’, ‘rear’, ‘north’, ‘south’
SizeY 1..1e+6 um ; only for Shape = ‘rectangle’ or Plane = ‘front’, ‘rear’, ‘east’, ‘west’ or Domain.Dimensions = ‘3’
SizeZ 1..1e+4 um ; only for Shape = ‘rectangle’ or Plane = ‘east’, ‘west’, ‘north’, ‘south’
Diameter 1..1e+6 um ; only for Shape = ‘circle’
RepetitionsX 1..1*..300 ; not for Shape = ‘full’ or Plane = ‘front’, ‘rear’, ‘north’, ‘south’
RepetitionsY 1..1*..300 ; not for Shape = ‘full’ or Plane = ‘front’, ‘rear’, ‘east’, ‘west’ or Domain.Dimensions = ‘3’
RepetitionsZ 1..1*..300 ; not for Shape = ‘full’ or Plane = ‘east’, ‘west’, ‘north’, ‘south’
PitchX 1..1e+5 um ; not for RepetitionsX = ‘1’ or Plane = ‘front’, ‘rear’, ‘north’, ‘south’
PitchY 1..1e+5 um ; not for RepetitionsY = ‘1’ or Plane = ‘front’, ‘rear’, ‘east’, ‘west’ or Domain.Dimensions = ‘3’
PitchZ 1..1e+5 um ; not for RepetitionsZ = ‘1’ or Plane = ‘east’, ‘west’, ‘north’, ‘south’
Inverse 1 / 0*
DepthType ‘user’, ‘auto’* how to determine the skin depth, i.e. the depth of the near-surface layer of the skin; for a lumped skin, ‘auto’ results in zero depth; for a details skin this overrides the thickness of the near-surface layer
DepthUser 0..10 um user-defined skin depth; only for DepthType = ‘user’

SkinFeature(iskin).Lumped

parameter (recommended) value range description
Electrical ; only for Solver.Electrical.Enable = 1
Optical ; only for …OpticalModelType = ‘lumped’

SkinFeature(iskin).Lumped.Electrical

parameter (recommended) value range description
RsheetEnable 1 / 0* enable / disable lateral conductance; only for ….ElectricalModelType = ‘lumped’
RsheetType ‘total’, ‘near-surface’* wether the lumped sheet resistance represents the total Rsheet of the skin, or only of the near-surface region; if set to ‘near-surface’, the Rsheet of an optional ‘transport’ layer will be considered in parallel to the lumped Rsheet; exception: if solely a lumped Rsheet is given for a skin containing a subcell, this defines the effective outer Rsheet, not the (intermediate) Rsheet of the bulk subcell near-surface; only for RsheetEnable = 1
Rsheet 1e-3..1e+5 Ohm sheet resistance; only for RsheetEnable = 1
ConductionType ‘n-type’, ‘p-type’ which type of carriers are transported within the skin; only for RsheetEnable = 1 or Domain.DeviceType = ‘semiconductor device’
ContactedRecombination recombination properties; only for Domain.DeviceType = ‘semiconductor device’, ‘semiconductor skin’ or ….ElectricalModelType = ‘lumped’
NonContactedRecombination recombination properties; only for Domain.DeviceType = ‘semiconductor device’, ‘semiconductor skin’ or ….ElectricalModelType = ‘lumped’
EtaColl collection efficiency; has effect only when set in combination with a user-defined skin depth; only for ….ElectricalModelType = ‘lumped’
WestEdgeJ02 0..0*..5e-8 Acm-1 J02edge value, applied where this skin corners the west solution domain edge
EastEdgeJ02 0..0*..5e-8 Acm-1 J02edge value, applied where this skin corners the east solution domain edge
NorthEdgeJ02 0..0*..5e-8 Acm-1 J02edge value, applied where this skin corners the north solution domain edge
SouthEdgeJ02 0..0*..5e-8 Acm-1 J02edge value, applied where this skin corners the south solution domain edge
SamePolarityConnection ‘ideal’*, ‘isolated’ if this skin neighbors a skin with the same conduction type, current can either freely flow between the skins (‘ideal’), or no current can flow between the skins (if one of the neighboring skins is set to ‘isolated’); the latter is useful e.g. to represent localized passivating contacts on top of a full-area diffused surface
OppositePolarityConnection ‘isolated’*, ‘shunt’ if neighboring skins are of opposite polarity and have both this set to ‘shunt’, a shunt current can flow between these skins; via on ohmic shunt defined by the sum of the shunt resistivities, and in parallel via a diode characteristics with an ideality of 2 defined by the sum of the J02 values; only for Domain.DeviceType = ‘semiconductor device’
ShuntResistivity 0..1.000e+10 Ohmcm line-specific shunt resistiviy (in Ohm times cm) for neighboring skins of opposite polarity; the sum of these values of the two neighboring skins is the effective shunt resistivity; only for OppositePolarityConnection = ‘shunt’
ShuntJ02 0..1e-7 A/cm line-specific J02 for neighboring skins of opposite polarity; the sum of these values of the two neighboring skins is the effective J02; only for OppositePolarityConnection = ‘shunt’
VerticalResistivityEnable 1 / 0* whether to define a resistivity between the bulk and the skin layer
VerticalResistivity ; only for VerticalResistivityEnable = 1
SkinFeature(iskin).Lumped.Electrical.ContactedRecombination
parameter (recommended) value range description
ModelType ‘J0’, ‘Seff’, ‘J0(V)’, ‘Seff(deltan)’, ‘off’* how to model recombination
J0 0..1e-11 Acm-2 J0 value; only for ModelType = ‘J0’
J02 0..0*..1e-7 Acm-2 J02 value; only for ModelType = ‘J0’
Seff 0..1e+6 cms-1 effective surface recombination velocity; 1e7 might sometimes lead to convergence issues, use <=1e6 which is usually well high enough; only for ModelType = ‘Seff’
J0(V) tabular data first column: 0..1 V; second column: 0..1e-11 Acm-2 defines J0 as a function of the bulk-side quasi-Fermi level split (which is approx. but not stricitly the device voltage); only for ModelType = ‘J0(V)’
Seff(deltan) tabular data first column: 0..1e+18 cm-3; second column: 0..1e+6 cms-1 defines Seff as a function of bulk-side excess carrier density; only for ModelType = ‘Seff(deltan)’
SkinFeature(iskin).Lumped.Electrical.NonContactedRecombination
parameter (recommended) value range description
ModelType ‘J0’, ‘Seff’, ‘J0(V)’, ‘Seff(deltan)’, ‘off’* how to model recombination
J0 0..1e-11 Acm-2 J0 value; only for ModelType = ‘J0’
J02 0..0*..1e-7 Acm-2 J02 value; only for ModelType = ‘J0’
Seff 0..1e+6 cms-1 effective surface recombination velocity; 1e7 might sometimes lead to convergence issues, use <=1e6 which is usually well high enough; only for ModelType = ‘Seff’
J0(V) tabular data first column: 0..1 V; second column: 0..1e-11 Acm-2 defines J0 as a function of the bulk-side quasi-Fermi level split (which is approx. but not stricitly the device voltage); only for ModelType = ‘J0(V)’
Seff(deltan) tabular data first column: 0..1e+18 cm-3; second column: 0..1e+6 cms-1 defines Seff as a function of bulk-side excess carrier density; only for ModelType = ‘Seff(deltan)’
SkinFeature(iskin).Lumped.Electrical.VerticalResistivity
parameter (recommended) value range description
CurrentTransportModel ‘ohmic’*, ‘MIS’ how to model current transport, see description below; not for Solver.Electrical.BulkModelType = ‘full’ or Domain.DeviceType = ‘resistive device’
OhmicResistivity 1e-6..1 Ohmcm2 contact resistivity; this value is applied in parallel to this contact’s MIS transport, e.g. representing pinholes; for a skin domain or 1D detailed cell simulation this value is disregarded (for 1D cell simulation one cane define a contact resistivity as an external series resistance instead); only for ..CurrentTransportModel = ‘MIS’, ‘ohmic’
MISInputType ‘J0’, ‘MIS properties’* whether to define the non-ohmic resistance by a J0 value, or from the MIS barrier and tunnel properties; only for ..CurrentTransportModel = ‘MIS’
J0 0..1e-6 A/cm2 ; only for ..MISInputType = ‘J0’
SchottkyBarrier -0.5..1 eV Schottky barrier height; only for ..MISInputType = ‘MIS properties’
TunnelBarrier 0..5 eV barrier height of tunneling (insulator) layer; only for ..MISInputType = ‘MIS properties’
TunnelThickness 0..10 nm thickness of tunneling (insulator) layer; only for ..MISInputType = ‘MIS properties’
EffectiveMass 0.01..1*..2 effective tunneling mass, fraction of electron rest mass; defaults to 1; only for ..MISInputType = ‘MIS properties’

SkinFeature(iskin).Lumped.Optical

parameter (recommended) value range description
External only if this skin’s side Text Type in the Optcial.TextZ group is set to ‘local’
Internal ; only for Optical.TextZ.FrontZ.Type = ‘local’ *or Optical.TextZ.RearZ.Type = ‘local’**only if this skin is placed at the front or rear side*
SkinFeature(iskin).Lumped.Optical.External
parameter (recommended) value range description
Type ‘Text’* if Text is set locally for each skin, Text must be directly provided
Text tabular data first column: 200..1.8e+3 nm; second column: 0..1 external transmission including Aext (and Agen, if a subcell is present on this side); only for Type = ‘Text’
Aext tabular data first column: 200..2.5e+3 nm; second column: 0..0*..1 parasitic absorption in illuminated side films during first light pass (usually non-zero only for short-wavelength region)
Agen tabular data first column: 200..2.5e+3 nm; second column: 0..0*..1 active absorption in illuminated side subcell as contained in Text, applied only if the skin contains a subcell within a tandem simulation
FacetAngle 0..90 deg characteristic facet angle of surface morphology
SkinFeature(iskin).Lumped.Optical.Internal
parameter (recommended) value range description
RintIdeal 1 / 0* when enabled, the internal reflection will is set the the ideal Lambertian limit: Rint = 1-1/n^2
Rint 0..1 internal reflection; nth pass only if RintFirstEnable is enabled; on the illuminated side, Rint will internally be limited to the Lambertian limit of 1-n^2 to ensure physical consistency; not for RintIdeal = 1
RintFirstEnable 1 / 0* enable setting the first-pass internal reflection different to subsequent passes; not for RintIdeal = 1
RintFirst 0..1 ; only for RintFirstEnable = 1
Diffuse 1 / 0 whether internal reflection is diffuse (fully scattered)
Scatter 1 / 0* whether incident light is fully scattered during the first external pass
ApppType ‘user’*, ‘from layers’ how to model the skin’s internal parasitic absorption; either user-defined fraction per perpendicular pass, or derived from layer properties
Appp 0..0*..1 parasitic absorption fraction per perpendicular pass through this skin; only for ApppType = ‘user’

SkinFeature(iskin).Layer

parameter (recommended) value range description
Name Name of this layer
Type ‘near-surface’, ‘transport’, ‘lumped-subcell’ type of the layer; ‘near-surface’ defines the near-surface part of the bulk like a diffusion profile; ‘transport’ is a different-material layer on top which is analytically modeled and acts mainly as a lateral transport layer, like e.g. a poly-Si or TCO layer; ‘lumped-subcell’ adds a subcell enabling a tandem simulation, which is defined via it’s JV-curve or it’s two-diode parameterization
SurfaceRecombination ; only for …ElectricalModelType = ‘detailed’ or Type = ‘near-surface’
DopingProfile tabular data first column: 0..3 um; second column: 0..1e+21 cm-3 the total doping profile in this layer (e.g. measured by SIMS); if no active profile is defined additionally, ionization models are applied depending on the incomplete ionization material model settings to calculate the active profile; only for Type = ‘near-surface’
ActiveProfile tabular data first column: 0..3 um; second column: 0..1e+21 cm-3 the active doping profile in this layer (e.g. measured by ECV); if both active and total profiles are defined, the difference is inactive doping which can represent SRH defects; only for Type = ‘near-surface’
Material the material this layer is made from; use e.g. ‘Si’ to model a poly-Si layer with idealized c-Si properties; or set to a user-defined material defined in the Material.User(imat). settings group; only for Type = ‘transport’
ConductionType ‘n-type’, ‘p-type’ whether this an electron or hole transport layer; only for Type = ‘transport’
TLModelType ‘metal-like’*, ‘analytic band-bending’ whether to assume a constant Fermi-Level in this transport layer (‘metal like’), or whether to analytically account for band-bending when placed next to the near-surface layer; only for Type = ‘transport’ or Solver.Electrical.Enable = 1
RsheetType ‘user’, ‘model’, ‘disabled’* how to determine sheet resistance of this transport layer; only for Type = ‘transport’
Rsheet 0..1e+4 Ohm ; only for RsheetType = ‘user’
ApppType ‘model’, ‘off’ whether to determine internal parasitic absorption of this layer calculated by the material’s optical properties; only for Type = ‘transport’, ‘near-surface’ or ..Lumped.Optical.Internal.ApppType = ‘from layers’
DopingDensityType ‘from DOS and Eact’, ‘user’ ; only for RsheetType = ‘model’ or TLModelType = ‘analytic band-bending’ or ApppType = ‘model’ or Type = ‘near-surface’
DopingDensity 0..1e+22 cm-3 ; only for DopingDensityType = ‘user’
EactType ‘from DOS and doping’, ‘user’ ; only for DopingDensityType = ‘from DOS and Eact’ or TLModelType = ‘analytic band-bending’
Eact 0..1 eV ; only for EactType = ‘user’
Thickness 0..1e+3 nm thickness of this layer; for a metal-like transport layer, this only affects results plotting (band-diagram) but not simulation results; only for Type = ‘transport’ or ApppType = ‘model’
Interface for a detailed skin, these settings define the interface properties to the near-surface layer; *only for …ElectricalModelType = ‘detailed’**only if the neighboring layer towards the bulk is a ‘near-surface’ layer*
WorkFunction 0..10 eV ; only for Interface.BarrierHeightType = ‘from workfunction’
JunctionResistivity defines current transport between an n-type and p-type transport layer connecting two subcells; represents effective contact resistivity of the recombination or tunnel junction; *only for Type = ‘transport’**only if this transport layer is neighboring an opposite-polarity transport layer within a multijunction cell*
Subcell defines the JV-characteristics of a subscell within that skin for a tandem simulation; only for Type = ‘lumped-subcell’

SkinFeature(iskin).Layer(ilay).SurfaceRecombination

parameter (recommended) value range description
Type ‘off’*, ‘S’, ‘Dit-sigma’, ‘Si-SiO2-Altermatt2002’, ‘Si-SiNx-Min2014’, ‘Si-Kimmerle2016’, ‘Si-Wolf2021’ how surface recombination is modeled; either using fundamental electron and hole surface recombination velocity inputs for surface SRH (‘S’), Dit and capture cross sections, or by using a published empirical parameterization for Sn and Sp
Kimmerle2016 ; only for ..Type = ‘Si-Kimmerle2016’
Sn 0..1e+7 cm/s fundamental electron surface recombination velocity; only for ..Type = ‘S’
Sp 0..1e+7 cm/s fundamental hole surface recombination velocity; only for ..Type = ‘S’
Et_Ei -1..0*..1 eV defect energy relative to intrinsic energy; only for ..Type = ‘S’, ‘Dit-sigma’
sigman 1.000e-20..1.000e-10 cm2 electron capture cross section; only for ..Type = ‘Dit-sigma’
sigmap 1.000e-20..1.000e-10 cm2 hole capture cross section; only for ..Type = ‘Dit-sigma’
Dit 0..1.000e+20 cm-2 surface defect density; only for ..Type = ‘Dit-sigma’
vth 1e+5..2e+7*..1e+9 cms-1 thermal velocity; only for ..Type = ‘Dit-sigma’
vthTdep 1 / 0* whether to model temperature dependence of the thermal velocity via scaling vth by sqrt(T/300K); if disabled, vth is constant; only for ..Type = ‘Dit-sigma’
FixedCharge -1e+13..0*..1e+13 cm-3
SkinFeature(iskin).Layer(ilay).SurfaceRecombination.Kimmerle2016
parameter (recommended) value range description
Charge 1 / 0* 1: explicitly accounting for charge; 0: Sp and Sn include the effect of charge
Texture 1 / 0 whether to assume textured (1) or planar (0) surface
Stack ‘SiOxNy-SiNx’, ‘SiO2-SiNx’ which dielectric stack to assume

SkinFeature(iskin).Layer(ilay).Interface

parameter (recommended) value range description
MinorityThermionicEmission 1 / 0* allow thermionic emission of minority carriers; disabling provides a more effective description of e.g. passivating contacts; needs to be enabled to account for selectivity losses caused by not very asymmetric barrier heights for electrons and holes
Insulator insulator properties can be defined between a metal-like transport layer and the near-surface layer; triggers the use of the detailed MIS model; only for …TLModelType = ‘metal-like’
BarrierHeightType ‘from workfunction’, ‘user’, ‘flat-bands’ whether the majority carrier barrier height is determined from this transport layer’s workfunction using the Schottky-Mott rule, or set by the user, or whether band-bending is disabled; only for …TLModelType = ‘metal-like’
BarrierHeight -1..1 eV ; only for BarrierHeightType = ‘user’
OhmicResistivity 1e-6..1.000e+10 Ohmcm2 ohmic resistivity of majority carriers parallel to MS / MIS transport; not for BarrierHeightType = ‘flat-bands’ or …TLModelType = ‘analytic band-bending’
SkinFeature(iskin).Layer(ilay).Interface.Insulator
parameter (recommended) value range description
Enable 1 / 0* enable an insulator, triggers the use of the detailed MIS model, currently only works for a metal-like transport layer
Thickness 0..5 nm ; only for Enable = 1
RelativePermittivity 1..100 ; only for Enable = 1
ElectronBarrier 0..0*..5 eV ; only for Enable = 1
HoleBarrier 0..0*..5 eV ; only for Enable = 1
ElectronEffectiveMass 0.1..1*..2 ; only for Enable = 1
HoleEffectiveMass 0.1..1*..2 ; only for Enable = 1

SkinFeature(iskin).Layer(ilay).JunctionResistivity

parameter (recommended) value range description
CurrentTransportModel ‘ohmic’*, ‘MIS’ how to model current transport, see description below; not for Solver.Electrical.BulkModelType = ‘full’ or Domain.DeviceType = ‘resistive device’
OhmicResistivity 1e-6..1 Ohmcm2 contact resistivity; this value is applied in parallel to this contact’s MIS transport, e.g. representing pinholes; for a skin domain or 1D detailed cell simulation this value is disregarded (for 1D cell simulation one cane define a contact resistivity as an external series resistance instead); only for ..CurrentTransportModel = ‘MIS’, ‘ohmic’
MISInputType ‘J0’, ‘MIS properties’* whether to define the non-ohmic resistance by a J0 value, or from the MIS barrier and tunnel properties; only for ..CurrentTransportModel = ‘MIS’
J0 0..1e-6 A/cm2 ; only for ..MISInputType = ‘J0’
SchottkyBarrier -0.5..1 eV Schottky barrier height; only for ..MISInputType = ‘MIS properties’
TunnelBarrier 0..5 eV barrier height of tunneling (insulator) layer; only for ..MISInputType = ‘MIS properties’
TunnelThickness 0..10 nm thickness of tunneling (insulator) layer; only for ..MISInputType = ‘MIS properties’
EffectiveMass 0.01..1*..2 effective tunneling mass, fraction of electron rest mass; defaults to 1; only for ..MISInputType = ‘MIS properties’

SkinFeature(iskin).Layer(ilay).Subcell

parameter (recommended) value range description
JVType ‘user’, ‘two-diode’ whether the JV-characteristics is defined via user JV-curve, or a via a two-diode model parameterization
JVUser tabular data first column: -1..2 V; second column: -100..500 mA/cm2 JV-curve of this subcell; if the GenerationModelType is NOT set to ‘defined-generation’, this curve will be automatically shifted so that Jsc (divided by collection efficiency) equals the generation predicted by the otpical modeling; only for JVType = ‘user’
J01 0..1e+4 aA/cm2 J01 of subcell JV-characteristics; only for JVType = ‘two-diode’
J02 0..1e+4 fA/cm2 J02 of subcell JV-characteristics; only for JVType = ‘two-diode’
Rseries 0..10 Ohmcm2 series resistance of subcell JV-characteristics; only for JVType = ‘two-diode’
Rshunt 100..1e+11 Ohmcm2 shunt resistance of subcell JV-characteristics; only for JVType = ‘two-diode’
Jsc 0..0*..100 mA/cm2 Jsc of subcell JV-characteristics; will be ignored if generation is determined by optical modeling instead; only for JVType = ‘two-diode’
EtaColl collection efficiency (=ratio of collected and generated carriers); only applied if the GenerationModelType is NOT set to ‘defined-generation’ to determine collected current density from the optical generation

SkinFeature(iskin).Detailed

parameter (recommended) value range description
Mesh
Multiscale ; only for Domain.DeviceType = ‘semiconductor device’ or Solver.Electrical.BulkModelType = ‘full’

SkinFeature(iskin).Detailed.Mesh

parameter (recommended) value range description
Quality ‘coarse’*, ‘standard’, ‘fine’, ‘very-fine’, ‘user’ how fine to discretize; note that the automatic meshing is scoped in such way that a ‘coarse’ mesh will result in sufficient numerical accuracy in most cases, and is thus the default
dzmin 1e-4..10 um minimum vertical element size; z - direction; only for Quality = ‘user’
dzmax 1..1e+4 um maximum vertical element size; z - direction; only for Quality = ‘user’
dzProfile tabular data first column: 0..1e+6 um; second column: 1e-4..1e+18*..10 um upper limit of vertical element size as a function of depth from the surface (front surface for bulk mesh, outer surface for skin mesh); defaults to a very high value which has no effect
inflation 1..4 maximum allowed ratio in size of neighboring elements; only for Quality = ‘user’
resolution 3..30 minimum amount of elements between any feature edges; only for Quality = ‘user’

SkinFeature(iskin).Detailed.Multiscale

parameter (recommended) value range description
ModelType ‘single point’, ‘injection dependent recombination’, ‘full’ how to couple the skin-solver with the qn-bulk solver: ‘single point’ (fastest) sufficient for typical diffusions where J0 and contact resistivity are well constant; ‘injection dependent recombination’ can account for the injection-dependence of the J0; ‘full coupling’ is the complete coupling required for non-ohmic interface effects, i.e. for the MIS model
TextureMultiplier 1..1*..1.7 scales effective bulk-side recombination within multiscale modeling to account for higher recombination of a textured surface relative to the planar simulation; equals J0,tex / J0,plan

ContactFeature

parameter (recommended) value range description
Name name of feauture, used in geometry plots and loss analysis
Geometry ; only for Domain.DeviceType = ‘semiconductor device’, ‘resistive device’
CurrentTransportModel ‘ohmic’*, ‘MIS’ how to model current transport, see description below; not for Solver.Electrical.BulkModelType = ‘full’ or Domain.DeviceType = ‘resistive device’
OhmicResistivity 1e-6..1 Ohmcm2 contact resistivity; this value is applied in parallel to this contact’s MIS transport, e.g. representing pinholes; for a skin domain or 1D detailed cell simulation this value is disregarded (for 1D cell simulation one cane define a contact resistivity as an external series resistance instead); only for ..CurrentTransportModel = ‘MIS’, ‘ohmic’
MISInputType ‘J0’, ‘MIS properties’* whether to define the non-ohmic resistance by a J0 value, or from the MIS barrier and tunnel properties; only for ..CurrentTransportModel = ‘MIS’
J0 0..1e-6 A/cm2 ; only for ..MISInputType = ‘J0’
SchottkyBarrier -0.5..1 eV Schottky barrier height; only for ..MISInputType = ‘MIS properties’
TunnelBarrier 0..5 eV barrier height of tunneling (insulator) layer; only for ..MISInputType = ‘MIS properties’
TunnelThickness 0..10 nm thickness of tunneling (insulator) layer; only for ..MISInputType = ‘MIS properties’
EffectiveMass 0.01..1*..2 effective tunneling mass, fraction of electron rest mass; defaults to 1; only for ..MISInputType = ‘MIS properties’

ContactFeature(icont).Geometry

parameter (recommended) value range description
Shape ‘full’, ‘rectangle’, ‘circle’ ; not for Domain.Dimensions = ‘1’
Plane ‘front’, ‘rear’, ‘east’, ‘west’, ‘north’, ‘south’
PositionX -1e+6..1e+6 um ; not for Shape = ‘full’ or Plane = ‘front’, ‘rear’, ‘north’, ‘south’
PositionY -1e+6..1e+6 um ; not for Shape = ‘full’ or Plane = ‘front’, ‘rear’, ‘east’, ‘west’ or Domain.Dimensions = ‘3’
PositionZ -1e+6..1e+6 um ; not for Shape = ‘full’ or Plane = ‘east’, ‘west’, ‘north’, ‘south’
SizeX 1..1e+6 um ; only for Shape = ‘rectangle’ or Plane = ‘front’, ‘rear’, ‘north’, ‘south’
SizeY 1..1e+6 um ; only for Shape = ‘rectangle’ or Plane = ‘front’, ‘rear’, ‘east’, ‘west’ or Domain.Dimensions = ‘3’
SizeZ 1..1e+4 um ; only for Shape = ‘rectangle’ or Plane = ‘east’, ‘west’, ‘north’, ‘south’
Diameter 1..1e+6 um ; only for Shape = ‘circle’
RepetitionsX 1..1*..300 ; not for Shape = ‘full’ or Plane = ‘front’, ‘rear’, ‘north’, ‘south’
RepetitionsY 1..1*..300 ; not for Shape = ‘full’ or Plane = ‘front’, ‘rear’, ‘east’, ‘west’ or Domain.Dimensions = ‘3’
RepetitionsZ 1..1*..300 ; not for Shape = ‘full’ or Plane = ‘east’, ‘west’, ‘north’, ‘south’
PitchX 1..1e+5 um ; not for RepetitionsX = ‘1’ or Plane = ‘front’, ‘rear’, ‘north’, ‘south’
PitchY 1..1e+5 um ; not for RepetitionsY = ‘1’ or Plane = ‘front’, ‘rear’, ‘east’, ‘west’ or Domain.Dimensions = ‘3’
PitchZ 1..1e+5 um ; not for RepetitionsZ = ‘1’ or Plane = ‘east’, ‘west’, ‘north’, ‘south’
Inverse 1 / 0*

MetalFeature

parameter (recommended) value range description
Name name of feauture, used in geometry plots and loss analysis
Geometry ; only for Domain.DeviceType = ‘semiconductor device’, ‘resistive device’
Electrical ; only for Solver.Electrical.Enable = 1
Optical

MetalFeature(imet).Geometry

parameter (recommended) value range description
Shape ‘full’, ‘rectangle’, ‘circle’ ; not for Domain.Dimensions = ‘1’
Plane ‘front’, ‘rear’, ‘east’, ‘west’, ‘north’, ‘south’
PositionX -1e+6..1e+6 um ; not for Shape = ‘full’ or Plane = ‘front’, ‘rear’, ‘north’, ‘south’
PositionY -1e+6..1e+6 um ; not for Shape = ‘full’ or Plane = ‘front’, ‘rear’, ‘east’, ‘west’ or Domain.Dimensions = ‘3’
PositionZ -1e+6..1e+6 um ; not for Shape = ‘full’ or Plane = ‘east’, ‘west’, ‘north’, ‘south’
SizeX 1..1e+6 um ; only for Shape = ‘rectangle’ or Plane = ‘front’, ‘rear’, ‘north’, ‘south’
SizeY 1..1e+6 um ; only for Shape = ‘rectangle’ or Plane = ‘front’, ‘rear’, ‘east’, ‘west’ or Domain.Dimensions = ‘3’
SizeZ 1..1e+4 um ; only for Shape = ‘rectangle’ or Plane = ‘east’, ‘west’, ‘north’, ‘south’
Diameter 1..1e+6 um ; only for Shape = ‘circle’
RepetitionsX 1..1*..300 ; not for Shape = ‘full’ or Plane = ‘front’, ‘rear’, ‘north’, ‘south’
RepetitionsY 1..1*..300 ; not for Shape = ‘full’ or Plane = ‘front’, ‘rear’, ‘east’, ‘west’ or Domain.Dimensions = ‘3’
RepetitionsZ 1..1*..300 ; not for Shape = ‘full’ or Plane = ‘east’, ‘west’, ‘north’, ‘south’
PitchX 1..1e+5 um ; not for RepetitionsX = ‘1’ or Plane = ‘front’, ‘rear’, ‘north’, ‘south’
PitchY 1..1e+5 um ; not for RepetitionsY = ‘1’ or Plane = ‘front’, ‘rear’, ‘east’, ‘west’ or Domain.Dimensions = ‘3’
PitchZ 1..1e+5 um ; not for RepetitionsZ = ‘1’ or Plane = ‘east’, ‘west’, ‘north’, ‘south’
Inverse 1 / 0*

MetalFeature(imet).Electrical

parameter (recommended) value range description
Polarity ‘n-type’, ‘p-type’ the (initial) polarity, i.e. whether the metal feature is connected to ground / 0 V (p-type) or the applied voltage (n-type)only if not simulating a resistive device with ‘finite-differences’ metal model type
Rsheet 1e-3..1 Ohm sheet resistance of the metal; only for Solver.Electrical.MetalModelType = ‘finite-differences’

MetalFeature(imet).Optical

parameter (recommended) value range description
ShadingFraction 0..1*..1 shading fraction of the metal feature to account for reflected and scattered light still contributing to generation; only for Solver.Illumination.Enable = 1

PadFeature

parameter (recommended) value range description
Name name of feauture, used in geometry plots and loss analysis
Geometry ; only for Domain.DeviceType = ‘semiconductor device’, ‘resistive device’
Electrical
Optical

PadFeature(imet).Geometry

parameter (recommended) value range description
Shape ‘full’, ‘rectangle’, ‘circle’ ; not for Domain.Dimensions = ‘1’
Plane ‘front’, ‘rear’, ‘east’, ‘west’, ‘north’, ‘south’
PositionX -1e+6..1e+6 um ; not for Shape = ‘full’ or Plane = ‘front’, ‘rear’, ‘north’, ‘south’
PositionY -1e+6..1e+6 um ; not for Shape = ‘full’ or Plane = ‘front’, ‘rear’, ‘east’, ‘west’ or Domain.Dimensions = ‘3’
PositionZ -1e+6..1e+6 um ; not for Shape = ‘full’ or Plane = ‘east’, ‘west’, ‘north’, ‘south’
SizeX 1..1e+6 um ; only for Shape = ‘rectangle’ or Plane = ‘front’, ‘rear’, ‘north’, ‘south’
SizeY 1..1e+6 um ; only for Shape = ‘rectangle’ or Plane = ‘front’, ‘rear’, ‘east’, ‘west’ or Domain.Dimensions = ‘3’
SizeZ 1..1e+4 um ; only for Shape = ‘rectangle’ or Plane = ‘east’, ‘west’, ‘north’, ‘south’
Diameter 1..1e+6 um ; only for Shape = ‘circle’
RepetitionsX 1..1*..300 ; not for Shape = ‘full’ or Plane = ‘front’, ‘rear’, ‘north’, ‘south’
RepetitionsY 1..1*..300 ; not for Shape = ‘full’ or Plane = ‘front’, ‘rear’, ‘east’, ‘west’ or Domain.Dimensions = ‘3’
RepetitionsZ 1..1*..300 ; not for Shape = ‘full’ or Plane = ‘east’, ‘west’, ‘north’, ‘south’
PitchX 1..1e+5 um ; not for RepetitionsX = ‘1’ or Plane = ‘front’, ‘rear’, ‘north’, ‘south’
PitchY 1..1e+5 um ; not for RepetitionsY = ‘1’ or Plane = ‘front’, ‘rear’, ‘east’, ‘west’ or Domain.Dimensions = ‘3’
PitchZ 1..1e+5 um ; not for RepetitionsZ = ‘1’ or Plane = ‘east’, ‘west’, ‘north’, ‘south’
Inverse 1 / 0*

PadFeature(imet).Electrical

parameter (recommended) value range description
Polarity ‘n-type’, ‘p-type’ the polarity of the potential, i.e. ground / 0 V (p-type) or the applied voltage (n-type)
ContactResistivity 1e-6..1 Ohmcm2 contact resistivity between pad and metal

PadFeature(imet).Optical

parameter (recommended) value range description
ShadingFraction 0..1*..1 shading fraction of the pad feature to account for reflected and scattered light still contributing to generation; only for Solver.Illumination.Enable = 1

Probe

parameter (recommended) value range description
Name name of this probe
Plane ‘front’, ‘rear’ on which side this probe is placed
PositionX -1e+6..0*..1e+6 um
PositionY -1e+6..0*..1e+6 um

Material

parameter (recommended) value range description
User(imat) user-defined materials
Si

Material.User

parameter (recommended) value range description
Name
ElectronAffinity 0..10 eV
RelativePermittivity 1..100
AugerModel ‘off’*, ‘Cn-Cp’
AugerCp 0..1.000e+10 cm6s-1 ; only for AugerModel = ‘Cn-Cp’
AugerCn 0..1.000e+10 cm6s-1 ; only for AugerModel = ‘Cn-Cp’
MobilityModel ‘user-const’*
HoleMobility 1..1e+4 cm2V-1s-1 ; only for MobilityModel = ‘user-const’
ElectronMobility 1..1e+4 cm2V-1s-1 ; only for MobilityModel = ‘user-const’
ni0Model ‘DOS-bandgap’*, ‘user-const’
ni0 1e+8..1e+13 cm-3 ; only for ni0Model = ‘user-const’
DOSModel ‘user-const’*
Nc 1e+17..1.000e+20 cm2V-1s-1 conduction band density of states; only for DOSModel = ‘user-const’
Nv 1e+17..1.000e+20 cm2V-1s-1 valence band density of states; only for DOSModel = ‘user-const’
BandGapModel ‘user-const’*
BandGap 0.5..4 eV ; only for BandGapModel = ‘user-const’
CradModel ‘user-const’*, ‘from nk’, ‘off’ how to determine the radiative recombination coefficient Crad = Brad,low*ni^2
Crad 0..1.000e+20 cm-3s-1 radiative recombination coefficient Crad = Brad,lowni^2 in units of cm-3s-1; only for CradModel = ‘user-const’*
nkModel ‘user’*, ‘database’
nk ; only for nkModel = ‘user’, ‘database’
FCAModel ‘off’*, ‘user’ ; only for Solver.Illumination.Enable = 1
FCA tabular data first column: 200..1.5e+3 nm; second column: 0..1e+6 cm-1 FCA absoprtion coefficient as a function of wavelength; only for FCAModel = ‘user’
IonsEnable 1 / 0* whether this material has mobile ions
AnionMobility 0..1e-7 cm2V-1s-1 mobility of anions; set to 0 to define immobile anions; only for IonsEnable = 1
CationMobility 0..1e-7 cm2V-1s-1 mobility of cations; set to 0 to define immobile anions; only for IonsEnable = 1
N0an 1e+12..119 cm2V-1s-1 average concentration of anions; only for IonsEnable = 1
N0cat 1e+12..119 cm2V-1s-1 average concentration of cations; only for IonsEnable = 1

Material.User(imat).nk

parameter (recommended) value range description
Database ; only for nkModel = ‘database’
n tabular data first column: 200..1.5e+3 nm; second column: 1..10 ; only for …nkModel = ‘user’
k tabular data first column: 200..1.5e+3 nm; second column: 0..1e+5 ; only for …nkModel = ‘user’
Material.User(imat).nk.Database
parameter (recommended) value range description
MaterialName name of material as stored in the database
DatasetName name of dataset for this material; ‘default’ uses the default dataset

Material.Si

parameter (recommended) value range description
ElectronAffinity 0..4.05*..10 eV
RelativePermittivity 1..11.68*..100
AugerModel ‘Si-Niewelt2021’*, ‘Si-Richter2012’, ‘Si-Sinton1987’, ‘Si-Altermatt2011’
AugerCp 0..1.000e+10 cm6s-1 ; only for AugerModel = ‘Cn-Cp’
AugerCn 0..1.000e+10 cm6s-1 ; only for AugerModel = ‘Cn-Cp’
MobilityModel ‘Si-Schindler2014’*, ‘Si-Klaassen1992’, ‘user-const’
HoleMobility 1..1e+4 cm2V-1s-1 ; only for MobilityModel = ‘user-const’
ElectronMobility 1..1e+4 cm2V-1s-1 ; only for MobilityModel = ‘user-const’
ni0Model ‘DOS-bandgap’*, ‘user-const’
ni0 1e+8..1e+13 cm-3 ; only for ni0Model = ‘user-const’
DOSModel ‘Si-Green1990’, ‘Si-Couderc2014’*, ‘user-const’
Nc 1e+17..1.000e+20 cm2V-1s-1 conduction band density of states; only for DOSModel = ‘user-const’
Nv 1e+17..1.000e+20 cm2V-1s-1 valence band density of states; only for DOSModel = ‘user-const’
BandGapModel ‘Paessler2002’*, ‘user-const’
BandGap 0.5..4 eV ; only for BandGapModel = ‘user-const’
CradModel ‘user-const’, ‘Si-Nguyen2014’*, ‘from nk’ how to determine the radiative recombination coefficient Crad = Brad,low*ni^2
Crad 0..1.000e+20 cm-3s-1 radiative recombination coefficient Crad = Brad,lowni^2 in units of cm-3s-1; only for CradModel = ‘user-const’*
nkModel ‘user’, ‘Si-Green2021’*, ‘Si-Schinke2015_Green2008’, ‘database’
nk ; only for nkModel = ‘user’, ‘database’
FCAModel ‘Si-BakerFinch2014’*, ‘off’, ‘user’ ; only for Solver.Illumination.Enable = 1
FCA tabular data first column: 200..1.5e+3 nm; second column: 0..1e+6 cm-1 FCA absoprtion coefficient as a function of wavelength; only for FCAModel = ‘user’
BGNModel ‘Si-Schenk1998’*, ‘Si-Schenk1998_LI’, ‘Si-Yan-Cuevas2014’, ‘off’
BandGapMultiplier 0.9..1*..1.1 multiplier for the bandgap when calculating ni0 from DOS; can be used to match a known ni0 value; for Si, when using the Green1990 DOS model and the Paessler2002 bandgap model, this should be set to 1.00494 to match ni0(300K) = 9.65 cm-3; only for DOSModel = ‘DOS-bandgap’
IncompleteIonizationModel ‘off’*, ‘Si-Altermatt2006’

Material.Si.nk

parameter (recommended) value range description
Database ; only for nkModel = ‘database’
n tabular data first column: 200..1.5e+3 nm; second column: 1..10 ; only for …nkModel = ‘user’
k tabular data first column: 200..1.5e+3 nm; second column: 0..1e+5 ; only for …nkModel = ‘user’
Material.Si.nk.Database
parameter (recommended) value range description
MaterialName name of material as stored in the database
DatasetName name of dataset for this material; ‘default’ uses the default dataset

‘front and rear contact unit cell’ syntax

parameter (recommended) value range description
Solver ; same as ‘generic’ Solver settings
ExternalCircuit ; only for Solver.Electrical.Enable = 1; same as ‘generic’ ExternalCircuit settings
Optical ; same as ‘generic’ Optical settings, except that illumination shape settings are not supported
Thermal ; same as ‘generic’ Thermal settings
Bulk ; same as ‘generic’ Bulk settings
UnitCellType ‘standard’, ‘busbar-enhanced’ which type of unit cell to simulate; ‘busbar-enhanced’ covers half of a busbar width and half of a finger length
BusbarPitch 10..100 mm busbar pitch; only for UnitCellType = ‘busbar-enhanced’
CellThickness 0.1..500 um cell thickness excluding metallization
FrontContactShape ‘full’, ‘line’, ‘dot’, ‘dash’ contact shape of front side; ‘dot’ is approximated by a square
FrontContactWidth 1..200 um width of contacts; diameter for ‘dot’ shape; not for FrontContactShape = ‘full’
FrontContactPitch 10..5e+3 um main pitch of contacts / fingers; not for FrontContactShape = ‘full’
FrontContactSpacing 10..5e+3 um spacing / secondary pitch of contacts; only for FrontContactShape = ‘dash’, ‘dot’
FrontContactLength 10..1e+3 um length of ‘dash’ contacts; only for FrontContactShape = ‘dash’
FrontContact ; same as ‘generic’ ContactFeature settings
FrontMetalShape ‘full’, ‘H-pattern’ shape of the metallization
FrontFingerWidth 1..200 um width of metal fingers; not for FrontMetalShape = ‘full’
FrontFingerShadingFraction 0..1 shading fraction of the fingers to account for reflected and scattered light still contributing to generation; not for FrontMetalShape = ‘full’
FrontMetalRsheet 1e-3..1 Ohm sheet resistance of the metal fingers; only for Solver.Electrical.MetalModelType = ‘finite-differences’
FrontMetalPolarity ‘n-type’, ‘p-type’ polarity of the applied voltage and conduction type of the skins on this side; only for Solver.Electrical.Enable = 1
FrontBusbarWidth 10..2e+3 um busbar width; only for UnitCellType = ‘busbar-enhanced’
FrontBusbarContactEnable 1 / 0 whether to model contacted or non-contacted busbars; only for UnitCellType = ‘busbar-enhanced’
FrontBusbarShadingFraction 0..1*..1 shading fraction of the front busbars to account for reflected and scattered light still contributing to generation; only for UnitCellType = ‘busbar-enhanced’
FrontBusbarContact ; only for FrontBusbarContactEnable = 1; same as ‘generic’ ContactFeature settings
FullFrontSkin ; same as ‘generic’ SkinFeature settings
LocalFrontSkin additional skin aligned to the contact geometry, with a user-defined width; same as ‘generic’ SkinFeature settings
LocalFrontContactSkin additional skin with identical geometry as the contacts; same as ‘generic’ SkinFeature settings
LocalFrontBusbarSkin ; same as ‘generic’ SkinFeature settings
RearContactShape ‘full’, ‘line’, ‘dot’, ‘dash’ contact shape of front side; ‘dot’ is approximated by a square
RearContactWidth 1..200 um width of contacts; diameter for ‘dot’ shape; not for RearContactShape = ‘full’
RearContactPitch 10..5e+3 um main pitch of contacts / fingers; not for RearContactShape = ‘full’
RearContactSpacing 10..5e+3 um spacing / secondary pitch of contacts; only for RearContactShape = ‘dash’, ‘dot’
RearContactLength 10..1e+3 um length of ‘dash’ contacts; only for RearContactShape = ‘dash’
RearContact ; same as ‘generic’ ContactFeature settings
RearMetalShape ‘full’, ‘H-pattern’ shape of the metallization
RearFingerWidth 1..200 um width of metal fingers; not for RearMetalShape = ‘full’
RearFingerShadingFraction 0..1 shading fraction of the fingers to account for reflected and scattered light still contributing to generation; not for RearMetalShape = ‘full’
RearMetalRsheet 1e-3..1 Ohm sheet resistance of the metal fingers; only for Solver.Electrical.MetalModelType = ‘finite-differences’
RearMetalPolarity ‘n-type’, ‘p-type’ polarity of the applied voltage and conduction type of the skins on this side; only for Solver.Electrical.Enable = 1
RearBusbarWidth 10..2e+3 um busbar width; only for UnitCellType = ‘busbar-enhanced’
RearBusbarContactEnable 1 / 0 whether to model contacted or non-contacted busbars; only for UnitCellType = ‘busbar-enhanced’
RearBusbarShadingFraction 0..1*..1 shading fraction of the front busbars to account for reflected and scattered light still contributing to generation; only for UnitCellType = ‘busbar-enhanced’
RearBusbarContact ; only for RearBusbarContactEnable = 1; same as ‘generic’ ContactFeature settings
FullRearSkin ; same as ‘generic’ SkinFeature settings
LocalRearSkin additional skin aligned to the contact geometry, with a user-defined width; same as ‘generic’ SkinFeature settings
LocalRearContactSkin additional skin with identical geometry as the contacts; same as ‘generic’ SkinFeature settings
LocalRearBusbarSkin ; same as ‘generic’ SkinFeature settings
Material ; same as ‘generic’ Material settings

‘front and rear contact full cell’ syntax

parameter (recommended) value range description
Solver ; same as ‘generic’ Solver settings
ExternalCircuit ; only for Solver.Electrical.Enable = 1; same as ‘generic’ ExternalCircuit settings
Optical ; same as ‘generic’ Optical settings, except that illumination shape settings are not supported
Thermal ; same as ‘generic’ Thermal settings
Bulk ; same as ‘generic’ Bulk settings
FullCellDomainType ‘full’, ‘half-symmetry’, ‘quarter-symmetry’, ‘multi-domain’ which type of solution domain(s) to simulate
CellSizeX 1..25 cm full cell size in X-dimension
CellSizeY 1..25 cm full cell size in Y-dimension
RedundantLineEnable 1 / 0* whether to include a redundant-line
CellThickness 0.1..500 um cell thickness excluding metallization
FrontContactShape ‘full’, ‘line’, ‘dot’, ‘dash’ contact shape of front side; ‘dot’ is approximated by a square
FrontContactWidth 1..200 um width of contacts; diameter for ‘dot’ shape; not for FrontContactShape = ‘full’
FrontContactNumber 1..1e+3 number of contact lines / fingers; not for FrontContactShape = ‘full’
FrontContactNumberY 1..3e+3 number of contacts in Y-direction; only for FrontContactShape = ‘dash’, ‘dot’
FrontContactLength 10..1e+3 um length of ‘dash’ contacts; only for FrontContactShape = ‘dash’
FrontContact ; same as ‘generic’ ContactFeature settings
FrontMetalShape ‘full’, ‘H-pattern’, ‘shingle’ shape of the metallization
FrontFingerWidth 1..200 um width of metal fingers; not for FrontMetalShape = ‘full’
FrontFingerShadingFraction 0..1 shading fraction of the fingers to account for reflected and scattered light still contributing to generation; not for FrontMetalShape = ‘full’
FrontMetalRsheet 1e-3..1 Ohm sheet resistance of the metal fingers; only for Solver.Electrical.MetalModelType = ‘finite-differences’
FrontMetalPolarity ‘n-type’, ‘p-type’ polarity of the applied voltage and conduction type of the skins on this side; only for Solver.Electrical.Enable = 1
FrontBusbarWidth 10..2e+3 um busbar width
FrontBusbarContactEnable 1 / 0 whether to model contacted or non-contacted busbars
FrontBusbarShadingFraction 0..1*..1 shading fraction of the front busbars to account for reflected and scattered light still contributing to generation
FrontEdgeDistanceX 0..1e+3 um distance between contacts and edge in X-direction; not for FrontContactShape = ‘full’
FrontEdgeDistanceY 0..1e+3 um distance between contacts and edge in Y-direction; not for FrontContactShape = ‘full’
FrontBusbarContact ; only for FrontBusbarContactEnable = 1; same as ‘generic’ ContactFeature settings
FullFrontSkin ; same as ‘generic’ SkinFeature settings
LocalFrontSkin additional skin aligned to the contact geometry, with a user-defined width; same as ‘generic’ SkinFeature settings
LocalFrontContactSkin additional skin with identical geometry as the contacts; same as ‘generic’ SkinFeature settings
LocalFrontBusbarSkin ; same as ‘generic’ SkinFeature settings
LocalFrontEdgeSkin additional skin with identical geometry as the contacts; same as ‘generic’ SkinFeature settings
RearContactShape ‘full’, ‘line’, ‘dot’, ‘dash’ contact shape of front side; ‘dot’ is approximated by a square
RearContactWidth 1..200 um width of contacts; diameter for ‘dot’ shape; not for RearContactShape = ‘full’
RearContactNumber 1..1e+3 number of contact lines / fingers; not for RearContactShape = ‘full’
RearContactNumberY 1..3e+3 number of contacts in Y-direction; only for RearContactShape = ‘dash’, ‘dot’
RearContactLength 10..1e+3 um length of ‘dash’ contacts; only for RearContactShape = ‘dash’
RearContact ; same as ‘generic’ ContactFeature settings
RearMetalShape ‘full’, ‘H-pattern’, ‘shingle’ shape of the metallization
RearFingerWidth 1..200 um width of metal fingers; not for RearMetalShape = ‘full’
RearFingerShadingFraction 0..1 shading fraction of the fingers to account for reflected and scattered light still contributing to generation; not for RearMetalShape = ‘full’
RearMetalRsheet 1e-3..1 Ohm sheet resistance of the metal fingers; only for Solver.Electrical.MetalModelType = ‘finite-differences’
RearMetalPolarity ‘n-type’, ‘p-type’ polarity of the applied voltage and conduction type of the skins on this side; only for Solver.Electrical.Enable = 1
RearBusbarWidth 10..2e+3 um busbar width
RearBusbarContactEnable 1 / 0 whether to model contacted or non-contacted busbars
RearBusbarShadingFraction 0..1*..1 shading fraction of the front busbars to account for reflected and scattered light still contributing to generation
RearEdgeDistanceX 0..1e+3 um distance between contacts and edge in X-direction; not for RearContactShape = ‘full’
RearEdgeDistanceY 0..1e+3 um distance between contacts and edge in Y-direction; not for RearContactShape = ‘full’
RearBusbarContact ; only for RearBusbarContactEnable = 1; same as ‘generic’ ContactFeature settings
FullRearSkin ; same as ‘generic’ SkinFeature settings
LocalRearSkin additional skin aligned to the contact geometry, with a user-defined width; same as ‘generic’ SkinFeature settings
LocalRearContactSkin additional skin with identical geometry as the contacts; same as ‘generic’ SkinFeature settings
LocalRearBusbarSkin ; same as ‘generic’ SkinFeature settings
LocalRearEdgeSkin additional skin with identical geometry as the contacts; same as ‘generic’ SkinFeature settings
BusbarNumber 1..20 number of busbars; only for FrontMetalShape = ‘H-pattern’ or RearMetalShape = ‘H-pattern’
EdgeDistanceBusbar 0..1e+3 um distance between edge and (the edge of) the busbar; only for FrontMetalShape = ‘shingle’ or RearMetalShape = ‘shingle’
CellOverlap 0..5e+3 um overlap of two shingle cells causing shading; only for FrontMetalShape = ‘shingle’ or RearMetalShape = ‘shingle’
WestEdgeSkin ; same as ‘generic’ SkinFeature settings
EastEdgeSkin ; same as ‘generic’ SkinFeature settings
SouthEdgeSkin ; same as ‘generic’ SkinFeature settings
NorthEdgeSkin ; same as ‘generic’ SkinFeature settings
Material ; same as ‘generic’ Material settings