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
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