2.3.6 (25 November 2022)

  • bugfix: lateral transport in detailed skin with inversion layer was neglected
  • bugfix: breakdown of avoidable and unavoidable light-trapping losses was wrong in the presence of metal shading
  • bugfix: Eact calculation was wrong in TLS current transport model (i.e. for “analytic band-bending” TLModelType)
  • added possibility to plot losses as pie charts
  • other minor fixes and improvements

2.3.5 (20 September 2022)

  • bugfix: lumped MIS (VerticalSkinResistivity) had wrong direction: now it is correctly opposing solar cell’s diode resulting in S-shaped JV-curves when MIS transport is limiting (detailed skin tunneling model was not affected)
  • bugfix: J02_edge recombination was wrongly applied to inner subdomain edges, affected only multi-domain simulations with EdgeJ02 defined
  • introduced possibility for controlling monochromatic illumination, allowing e.g. QE simulation with different shape of bias and monochromatic illumination
  • introduced “intermediate” transport layers for tandem modeling, accounting for sheet and junction resistances between top and bottom cell; also enables to account for lateral bulk minority carrier transport in equivalent-circuit mode; see updated tandem examples
  • improved interactive axis widget in 3D view allowing to control view directions
  • several improvements and fixes for detailed solver for MS/MIS/TLS current transport and band-diagram plotting

2.3.4 (8 August 2022)

  • bugfix: bulk recombination settings have been ignored (introduced in 2.3.3)

2.3.3 (8 August 2022)

  • bugfix: defining light-trapping (i.e. “Z”) via Rtot input did result in zero light-trapping
  • bugfix: contour plots are working again
  • added option to define bulk recombination via a J0 value for the equivalent-circuit bulk model type: ‘Bulk.Electrical.EQCInputType’
  • other minor fixes

2.3.2 (23 July 2022)

  • some bugfixes related to “Probe” settings
  • bugfix: pseudo current-densities (and pFF) were wrong for non full-area illumination
  • added “Si-Wolf2021” option for surface recombination (model from https://doi.org/10.1016/j.solmat.2021.111292)
  • other minor fixes

2.3.1 (21 June 2022)

  • bugfix: MIS type current transport did not convergence
  • some numerical full-coupling multiscale fixes and improvements
  • bugfix: monofacial shingle geometry in “front and rear contact full cell” was wrong

2.3.0 (29 May 2022)

  • released tandem functionality as beta version
  • bugfix: AM0 spectrum was wrong
  • bugfix: multiscale MIS model convergence fix
  • several minor fixes and improvements

2.2.7 (20 April 2022)

  • implemented import of lifetime images to define spatial and injection dependent bulk lifetime
  • added functionality to manually export Excel file from loaded .h5 results file
  • bugfix: for large external diode or shunt values, Voc and pseudo-IV characteristics (e.g pFF and suns-Voc curve) results have been inaccurate
  • bugfix: electrical connection of skins around edges was missing
  • bugfix: relative pathnames (e.g. starting with “.\..”) are working again
  • some GUI stability improvements, including Excel file creation
  • some other fixes and improvements

2.2.6 (27 February 2022)

  • !!WARNING!! bugfix: the new Niewelt Auger model option (see changelog for 2.2.1 below) has not been activated in the cloud-service, i.e. all simulations did still use the previous default Richter model. Only since 2.2.6 Niewelt is the default Auger model, meaning that simulations with significant Auger contribution will give different results from version 2.2.6
  • some other smaller fixes and improvements

2.2.5 (04 February 2022)

  • implemented ‘transient’ solution type (examples to come…)
  • some Jsc algo bugfixes: fixes rare random Jsc inaccuracy; fixes rare too high voltage for QE simulation resulting in too low EQE
  • fixes an issue with Excel file creation sometimes causing a software crash
  • several minor bugfixes

2.2.4 (21 December 2021)

  • bugfix: some EL-PL solution types were not working
  • 1D plotting bugfix
  • Added ShuntJ02 for opposite polarity connection of skins
  • Other minor improvements

2.2.3 (6 December 2021)

  • bugfix: resistive device was not working since 2.2.1
  • bugfix: user-defined spectrum was not working
  • implemented ‘Rs-curve’, ‘Rs-MPP’ and ‘Tc light JV’ solution types to simulate series resistance determination methods and temperature coefficients of JV-parameters
  • Improved SSL connection

2.2.2 (29 November 2021)

  • bugfix: reconnecting / downloading cloud-simulation problem
  • bugfix: log was sometimes incomplete

2.2.1 (28 November 2021)

Initial non-beta release of version 2, now being the default version.


This version introduces new default material properties for Si. In particular a new Auger model might significantly change simulation results compared to previous versions. You can explicitly set the previous models for compatibility via Material.Si.nkModel and Material.Si.AugerModel.

Changes to last beta of version 2 (v2.2.0beta)

  • bugfix: sheet resistance of transport layer within a skin was ignored
  • bugfix: sweeping of some specific parameters was not working properly
  • bugfix: copes with special characters (Chinese characters) of directory names; but for the name of the settingsfile special characters still must be avoided
  • enabled ‘full’ and ‘injection dependent recombination’ multiscale coupling modes for detailed skins
  • enabled ‘analytic band-bending’ option for transport layers, accounting for band-bending in those layers via their material properties
  • added support for 1D detailed cell simulations and 1D spatial data plotting, including band-diagram plot
  • added ‘AM0’ spectrum option
  • added ‘Si-Green2021’ as default optical properties for Si material: https://doi.org/10.1002/pip.3474
  • added ‘Si-Niewelt2021’ as default Auger model: https://doi.org/10.1016/j.solmat.2021.111467
  • improved Excel file formatting
  • added description and groups to results
  • more automatic JV-curve algorithm improvements, copes better with S-shaped and shunt-like curves
  • other minor improvements

Changes to v1.2.8

Version 2 is an all-new C++ codebase both for the core simulation code and the GUI.


  • You can fully define your cell optics via a measured reflection curve, featuring automatic metal-reflection correction and an automatic light-trapping model (=Basore model) fit. That works even better for bifacial cells if you provide a reflection curve for front and rear, see the bifacial TOPCon example.
  • Additional to the near-surface layer, a skin can now contain a transport layer, also within a lumped skin, which is analytically modelled. This is good for a better consideration of e.g. poly-Si layers, where you can define the thickness and doping, and Quokka3 figures out the corresponding parasitic absorption and sheet resistance effect. See the bifacial TOPCon example.
  • You can perform optimization tasks, with a focus on curve-fitting experimental data. See the TLM-fit example which showcases how the biTLM method fits Quokka3 simulations to experiments to determine the various contact resistivities.
  • The settings recognize units. Ever forgot the e-15 when defining the J0 and got a convergence error? Now you can simple write …J0 = 12 fA/cm2. Also in text input files you can write such units in the first row.
  • The all-new GUI is much smaller in file-size, and provides better geometry view and results plotting functionality. E.g. you can create a cross-section plot of carrier densities after a 3D simulation, and freely zoom and pan.
  • There is a settings lookup in the GUI, which is recommended to be used. Just paste any setting (or nothing) to list available settings of a group, or get a description of a particular setting like default values, dependencies etc.
  • Many more things …

Current limitations and known issues

  • the simplified syntaxes ‘1d detailed homojunction cell’ and ‘near-surface skin’ are not yet implemented
  • transient simulations, ion transport and general SRH are not yet implemented in the detailed 1D solver.
  • Importing lifetime images for the bulk lifetime variation is not yet implemented.
  • A parallel mesh is not yet supported, but the parallel sweep works.
  • Several minor things. Please give feedback if a particular functionality you need is missing.

Settings changes of version 2 compared to v1.2.8

Unfortunately again some syntax changes have been required. However, version 2 has a better settings structure, which should result in very few, if any, future syntax changes.

It is recommended to use the settings lookup in the GUI to learn about the new settings syntax. For this, write or paste a settingsline, or a settingsgroup into the text field and press enter to get some detailed information.

The main differences to v1.2.8 are summarized below. Following them, you should be able to convert a v1.2.8 settingsfile into a version 2 settingsfile.

  • Bulk.Electrical.BackgroundDoping. settings group has moved to Bulk.BackgroundDoping.
  • Solver.Sweep.Enable is now Sweep.Enable
  • Optical.TextZ.FrontText.Type / Optical.TextZ.RearText.Type options are now ‘Text’ (formerly ‘global-lumped’), ‘local’ (previously ‘local-lumped’) and ‘from Rtot’
  • Optical.TextZ.FrontText.Global. / Optical.TextZ.RearText.Global. settingsgroup has moved to Optical.TextZ.FrontText.Text. / Optical.TextZ.RearText.Text.
  • Optical.TextZ.FrontText.Global.FacetAngle / Optical.TextZ.RearText.Global.FacetAngle has moved to Optical.TextZ.FrontText.FacetAngle / Optical.TextZ.RearText.FacetAngle
  • in the Optical.TextZ.FrontZ.Type / Optical.TextZ.RearZ.Type options the prefix ‘global-’ is removed, valid options are now ‘user’, ‘parameterization’, ‘4n2-limit’, ‘Green02-limit’, ‘Basore’, ‘from FrontRtot’, ‘from RearRtot’, ‘from FrontRtot and RearRtot’, ‘local’
  • Optical.TextZ.FrontZ.Param. / Optical.TextZ.RearZ.Param. settingsgroup is removed, Z-Parameters are defined via Optical.TextZ.FrontZ.Z0 / Optical.TextZ.RearZ.Z0 and so on
  • SkinFeature(iskin).Lumped.Optical.Text. settingsgroup has moved to SkinFeature(iskin).Lumped.Optical.External.Text.
  • SkinFeature(iskin).Lumped.Optical.FacetAngle has moved to SkinFeature(iskin).Lumped.Optical.External.FacetAngle
  • new settings for the SkinFeature(iskin).Lumped.Optical.Internal. settingsgroup are: .Rint, .RintFirstEnable, .RintFirst, .Diffuse, .Scatter, .ApppType and .Appp
  • SkinFeature(iskin).Lumped.Electrical.VerticalResistivity.Enable has moved to SkinFeature(iskin).Lumped.Electrical.VerticalResistivityEnable (without a dot .)
  • The “Layers” within a skin have been reorganized, please check the settings lookup