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