Quokka3 version changelog

2 (February 2021)

1.2.8 ( 7 November 2020)

  • support for shingle geometry in “front and rear full cell” syntax, see shingle cell example
  • bugfix: fixed a problem when wavelength range of optical input data was too wide
  • bugfix: combination of lifetime-curve and detailed solver (including a detailed skin) did not work
  • minor bugfixes and improvements

1.2.7 ( 2 January 2020)

  • fixed a false positive malware alarm: the two main executables have been wrongly detected as malware in some cases (this fix requires a fresh full download)
  • geometry view bugfix: rectangular features on the sides were incorrectly displayed
  • bugfix: wrong FELA for conduction in skins at sides, did also result in false inaccuracy warnings

1.2.6 ( 28 July 2019)

  • GUI bugfix: plotting of Scalar results was not working when a curve solution-type was used (introduced in 1.2.5)
  • bugfix: QE-curve results where inaccurate to various degrees when detailed skins were used with the ‘single point’ multiscale coupling mode (the spectral collection efficiency of the detailed skin was wrong); the total skin collection efficiency and Jsc results were correct
  • for the automatic update to the next version no admin rights will be required

1.2.5 ( 19 July 2019)

  • bugfix: .RepetitionsY was ignored if .RepetitionsX was set to default or 1
  • Introduced FrontEdgeDistanceX, FrontEdgeDistanceY, RearEdgeDistanceX and RearEdgeDistanceY replacing EdgeDistanceX and EdgeDistanceY
  • added some material properties to scalar outputs

1.2.4 ( 14 July 2019)

  • New feature geometry settings: .RepitionsX, .RepetitionsY (and RepetitionsZ); allows to create an array of features in the generic syntax

  • added FrontBusbarShadingFraction and RearBusbarShadingFraction in the simplified front and rear contact cell syntaxes (was assumed fully shading so far)

  • syntax change: removed feature geometry setting .Repetitions

  • syntax change: removed ‘none’ option for …Profile.DopingType; added …Profile.Type = ‘off’ instead

  • syntax change: moved TextureMultiplier* and MultiscaleModelType options of detailed SkinFeature to new .Multiscale group

  • bugfix for sunsVoc ‘pFF-only’ solution type when combined with multi-domain model

  • some improvements and fixes of transient time stepping

  • meshing improvements for circular features

  • several other minor improvements

1.2.3 ( 13 March 2019)

  • bugfix: sweeping some parameters of the simplified syntaxes (e.g. dashed contact spacing) did produce an error
  • bugfix for ‘Rs-MPP’ solution type: all FELA results and also RsLoss was wrong
  • bugfix for lifetime image import: default value for minimum lifetime (Bulk.Electrical.Recombination.LifetimeFile.MinimumLifetime) was 100us instead of 1us
  • bugfix: using lifetime images or lifetime curve inputs under some circumstances did lead to a problem finalizing the simulation
  • introduced time stamps to messages for finished sweep points
  • some convergence improvements for transient solver

1.2.2 (11 January 2019)

  • bugfix: combining a vertical resistance of a skin with finite-difference metal modeling did produce a convergence error
  • bugfix: partial illumination within multi-domain modelling did produce wrong area-specific output scalars (current densities, FELA, …)
  • some internal fixes and improvements towards better convergence

1.2.1 (22 November 2018)

  • bugfix in simplified full-cell syntax: enabling a redundantline without enabling LocalFrontSkin did produce an error
  • bugfix for multi-domain approach: the width of the domains was wrongly calculated using the greatest-common-divisor (gcd) of the front and rear contact numbers Nfront and Nrear, which is now corrected to gcd(Nfront-1,Nrear-1); difference in results is small in most cases, but the correct way requires the front and rear finger numbers to be adjusted (e.g. increased by one) to result in a sensibly small gcd
  • bugfix in .xls result file: for a 2D sweep (using both GroupA and GroupB) in the FELA and CLA sheets the sorting of the sweep parameter values was wrong, but the results were sorted identically to the Scalars sheet; now sorting is correct and consistent in Scalars, FELA and CLA spreadsheet
  • bugfix in simplified snytax: the soon-to-be-deprecated parameters “RearBusbarContact.Electrical.ContactResistivity” and “FrontBusbarContact.Electrical.ContactResistivity” were ignored instead of giving a deprecation warning
  • allowing edge-J02 definition for detailed skins and lumped skins with Seff recombination model
  • fixed and improved scripts to generate input file from lifetime images in inhomogeneous bulk lifetime example
  • some minor fixes and improvements

1.2.0 (17 October 2018)

New Features

  • Introduced the possibility of per-user cloud computing limits; additionally to per-institute limits
  • added ‘MIS_simple’ option for a lumped skin’s vertical resistivity and contact resistivity; compatible with ohmic simulations, i.e. resistance test structures
  • Enabled ‘dark JV-curve’ solution type for ohmic devices (resistance test structures), to simulate non-ohmic JV-curves for resistance structures involving MIS contacts
  • Schindler 2014 mobility model implemented (more accurate for compensated silicon), set to default
  • FELA now more clearly differentiates between resistive and diffusive transport losses, which add up to the total transport losses

!Syntax changes!

  • removed ‘.Electrical’ from ContactFeauture settings, i.e. ContactFeature(icont).Electrical. -> ContactFeature(icont).
  • changed ‘ContactFeature(icont).Electrical.ContactResistivity’ to ‘ContactFeature(icont).OhmicResistivity’; old setting still supported for now but gives deprecation warning
  • moved ‘Solver.Electrical.MinorityThermionicEmission’ to ContactFeature(icont).MinorityThermionicEmission’


  • bugfix: when optics were defined via SunSolve file, Text was wrongly still taken from the SkinFeature optical properties
  • bugfix: vth setting for SRH recombination was ignored
  • bugfix: J02-edge recombination was incorrectly accounted for in FELA
  • bugfix: EdgeLoss results for multi-domain simulations was inaccurate (ca. factor 10, but not exactly)
  • GUI bugfix: proxy server did only work with “robust connection mode”

1.1.10 (24 September 2018)

  • GUI: added option to plot band-diagram including electrostatic potential
  • bugfix generic syntax: non-consecutive indexing of detailed skins didn’t work correctly
  • bugfix GUI: fixed “currentvers” error
  • some fixes and improvements for handling incomplete results within a (parallel) sweep

1.1.9 (6 August 2018)

  • Fixed a numerical bug introduced in version 1.1.8 leading to wrong results in some cases

1.1.8 (4 August 2018)

  • bugfix: EQE calculation was wrong for scaled bias illumination
  • bugfix: radiative recombination in Si was always zero (bug introduced in version 1.1.6)
  • bugfix: one dimensional qn-bulk solver simulations did produce an error during writing results
  • new input parameter and default value for thermal velocity: 2e7 cm/s at 300K, adding also temperature-dependence; only affects SRH recombination defined via capture cross sections in the bulk and at surfaces
  • improvements for solving non-contacted devices (e.g. enabling sunsVoc-curve for symmetric lifetime samples)
  • MIS model improvements: accounting for the effect of potential drop over the tunneling layer; multiscale coupling improvements

#1.1.7 (31 May 2018)

1.1.6 (21 April 2018)

  • new solution type ‘Tc light JV’ to calculate temperature coefficients of light JV parameters
  • GUI supports plotting of spatial data for a sweep (1D only)
  • fixed START_DISCONNECT command of command-line version to give the simulation id only to stdout instead of as return code (which wasn’t working)
  • minor other fixes and improvements

1.1.5 (28 March 2018)

  • ‘front and rear contact full cell’ syntax released, featuring a multi-domain approach to efficiently simulate a full-area H-pattern metallized solar including its edges (see this example)
  • Bugfix: ‘erfc’ doping profiles were wrong
  • Bugfix: “pmpp” and “Pmpp” scalar outputs had randomly wrong values (renamed “Pmpp” to “Pwmpp”)
  • GUI enhanced by progress bars for uploading and downloading

1.1.4 (28 February 2018)

  • Bugfix introduced in 1.1.3: for simplified syntaxes in some cases the geometry of features was unintentionally inversed

1.1.3 (23 February 2018)

  • Added feature geometry parameter ‘.Inverse’ (defaults to 0) for the feature to cover the full area except of the defined geometry; useful to create “gaps”
  • Added Probes to sense surface potential at defined positions (useful for simulating 4PP measurements)
  • Renamed feature geometry parameter ‘.RepetitionsNumber’ to ‘.Repetitions’ with a default value of 1
  • Improved meshing to better cope with circles
  • GUI: introduced legends in line plots, including a toolbar button to toggle legend visibility
  • GUI: added toolbar button to copy line plot data to clipboard, compatible with pasting into Excel

1.1.2 (9 February 2018)

  • Bugfix: Solver.IonPreBias.ScaleGeneration did default to 0 instead of to Solver.Optical.ScaleGeneration, thus wrongly resulting in zero pre-bias generation when not given
  • Bugfix: import of more than 2 lifetime images my have resulted in substantial error
  • Bugfix: rear-side QE simulation did result in wrong Teff and IQE (EQE was correct)
  • Bugfix: ‘local-lumped’ option for Optical.TextZ.RearZ did result in errors (it was ok for FrontZ)
  • Some fixes / improvements for MIS contacts and multiscale modeling
  • GUI: cloud connection is now kept when opening settings dialog
  • Performance boost for ohmic simulations

#1.1.1 (17 January 2018)

  • bugfix: optics definition via a SunSolve file was not working with cloud-service
  • bugfix: GUI files where missing in update and latest version
  • some improvements for MS / MIS implementation

1.1.0 (12 January 2018)

Version 1.1.0 is a larger release introducing several new capabilities, please read below.

New features

  • Import from SunSolve introduced, a convenient and consistent way to interface Quokka3 with a powerful optics simulator; see details in Modelling guide
  • Supports the calculation of light trapping (i.e. “Z”) via the internal optical properties of the skin, meaning different optical generation for different parts of the cell can be modelled; see details in Modelling guide
  • MIS contact model released, see details in Modelling guide and user guide, enhances in particular the capabilities to model tunnel-oxide contacts
  • General SRH recombination is now implemented for the 1d-detailed solver, both for steady-state and transient simulations; thoroughly accounts for the effects of trapping and transient SRH dynamics
  • Improvements to the 1d-detailed solver convergence, comprising the ability to solve for intrinsic conditions (0 V and 0 Generation), as well as ion transport modeling
  • Capability to choose intrinsic conditions as a starting point for transient simulations via Solver.Transient.StartType=‘intrinsic’.


  • The effect of ion concentration on n0 and p0 was wrongly neglected in some cases, may have influenced recombination effects in the presence of ions
  • Some bugfixes for the cmd-version
  • A freshly started GUI wasn’t correctly able to reconnect to finished simulations

Snytax changes for internal optical properties of skin features

do not distinguish contacted and non-contacted regions of a skin anymore (which were internally area-averaged on the entire skin feature anyway), use separate skin features instead to distinguish; detailed changes for the group SkinFeature(iskin).Lumped.Optical:

  • .ContactInternal.NthPassReflectance and .NonContactedInternal.NthPassReflectance -> .Internal.AverageReflectance
  • .ContactInternal.FirstPassReflectance and .NonContactedInternal.FirstPassReflectance -> .Internal.SpecularReflectance
  • .ContactInternal.LambertianFraction and .NonContactedInternal.LambertianFraction -> .Internal.LambertianFraction

1.0.5 (7 December 2017)

  • Bugfix: wrong memory prediction introduced in 1.0.4 resulted in wrongly exceeding cloud allowances
  • Introduced ‘Solver.Electrical.NPMetalPadContact’ setting to control behavior for the case that a PadFeature is placed on top of a MetalFeature with opposite polarity (defaults to error)

1.0.4 (4 December 2017)

  • Bugfix: cmd-version wasn’t working
  • Bugfix: in some cases multiscale modeling did produce a wrong “free version exceeded” error even when using the cloud-service
  • Optical settings group changes: Optical.TextZ.Text -> Optical.TextZ.FrontText and Optical.TextZ.RearText (allows differentiation of a “global” Text for front and rear); Optical.TextZ.Text is still supported, but will soon be deprecated

1.0.3 (22 November 2017)


  • Bugfix for 2D geometry plotting


  • Some bugfixes for multiscale modeling, (QE simulations with single-point coupling were wrong, sweep did sometimes not work)
  • Bugfix: skinsolver wasn’t usable
  • Bugfix: FELA recombination contributions were missing in results files

1.0.2 (13 November 2017)


  • Stores a log file for each simulation
  • Added an IBC settingsfile in the example folder
  • Few minor changes


  • Added Kimmerle et al. 2016 parameterizations for Sn and Sp surface recombination velocities
  • Some extensions to ‘front and rear contact unit cell’ syntax:
    • Allows different properties for front and rear busbar properties
    • Supports additional local skins for busbar and contact regions
  • Added toggle to allow ideal (re-absorption free) escape probability of luminescence
  • Perovskite material:
    • added default value for Brad (6e-10 cm3/s)
    • added simple Auger model via user-defined electron and hole Auger parameters Cn and Cp
  • Some fixes for Rs-curve and sunsVoc-curve solution types
  • Some fixes and improvements for multiscale modeling
  • Transient solver convergence improvements

1.0.1 (13 October 2017)


  • Fixed some problems for the manage cloud simulations window (no refresh after delete / frequent freezes)


  • Introduced current loss analysis (CLA)
  • supports user-defined n&k values

1.0.0 (25 September 2017)


  • initial public non-beta release


  • initial public non-beta release