Overview

Version 2 is an all-new cross-platform c++ code for both the core simulation code and the user interface (GUI). This makes future extensions of Quokka3 much more feasible, and will also improve the user experience by improved GUI capabilities and stability. Also, a Mac version is in sight.

To start with, the beta version will only have few new features and in fact still some significant limitiations compared to v1.2.8, see details below. But over the next weeks version 2 will have all capabilities of v1.2.8, and over the next months and years you can be excited about substantial extensions like tandem capabilities.

While still in beta status, the experience with version 2 might be “more buggy” compared to v1.2.8. Any feedack is appreciated also on apparently minor issues, which helps to improve the all-new codebase. Until the full stable release of version 2, v1.2.8 will continue to be usable as-is.

Highlights

  • 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 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 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 little things …

Beta limitations and known issues

  • The detailed skin functionality is limited to ‘single-point’ multiscale coupling mode.
  • No 1D detailed cell and transient simulations
  • The MS / MIS model within detailed skins is not yet supported.
  • A parallel mesh is not yet supported, but the parallel sweep works.
  • A proper documentation is missing, an all-new website will also be released within a few weeks / months
  • No Chinese / special character support in filenames; please avoid special characters in working folders, filenames, and also as the OS username
  • Several minor things. Please give feedback if a particular functionality you need is missing, and I can consider implementing it in the next update.

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

Download

Here you can download the latest Quokka3 version 2 GUI software, which is bundled with a free (restricted) core executable. It is currently available for Windows (7, 8 and 10) only.

To access the full version, an additional license including cloud-access is required, see License options.

Disclaimer: This Quokka3 version is distributed for free. The software is licensed for non-commercial use only, without any expressed or implied warranty for the usefulness or correctness of the results rendered by this software. Download and use at your own risk. If you hold a paid license to use a non-free version, seperate license terms apply

Accept and download Quokka3 version 2 (beta) for Windows

Examples

Here you find some examples specifically for version 2:

Download version 2 examples

Changelog

2.2.0beta (18 October 2021)

  • bugfix: required RAM was too high when a sweep was enabled
  • improved sorting of scalar outputs in simulation log

2.1.9beta (14 October 2021)

  • bugfix: Optical.CorrectToKnownJgen did have no effect
  • bugfix: using the generation-profile from a SunSolve file did result in a large error of Jgen; Text-Z data from SunSolve (the default option) was OK
  • bugfix: user-defined spectrum didn’t work
  • bugfix: J02edge was not correctly applied under some circumstances
  • bugfix: saving spatial and maps data in parallel mode did not work correctly but produced error messages
  • bugfix: NtProfile and dzProfile was not correctly working
  • added options to define neighboring skin connections types:
    • SkinFeature(iskin).Lumped.Electrical.SamePolarityConnection: ‘ideal’ (default) and ‘isolated’ for same-polarity skins
    • SkinFeature(iskin).Lumped.Electrical.OppositePolarityConnection: ‘isolated’ (default) and ‘shunt’ for opposite polarity skins
  • lumped skin connection options and J02edge properties are now also settable for detailed skins

2.1.8beta (1 October 2021)

  • bugfix: sheet resistance losses in PLA were too high, other results were not affected
  • bugfix: electrical PLA for multi-domain was inaccurate
  • added .Scale setting to .dzProfile (replacing dzProfileScale) and .NtProfile group
  • added Bulk.Electrical.Recombination.LifetimeCurve.SplitIntrinsic option to support lifetime-curves exceeding the intrinsic limit
  • added some more bulk properties to the Scalar results
  • other minor fixes and improvements

2.1.7beta (18 September 2021)

  • bugfix: parasitic absorption (Appp) of a “near-surface” layer was wrong
  • bugfix: surface FixedCharge did not have an effect
  • bugfix: a detailed skin without definition of a DopingProfile resulted in an error
  • bugfix in “front and rear contact full cell”: combination of redundantline and dashed contact shape resulted in an error
  • bugfix: NtProfile is now relative to front side
  • added dzProfile setting to mesh settingsgroup, allowing to define (maximum) mesh element size as a function of depth
  • other minor fixes and improvements

2.1.6beta (2 September 2021)

  • bugfix: multi-domain was not working correctly since 2.1.4beta
  • bugfix: SunSolve import was not working in 2.1.5beta
  • added command-line executable; same syntax as in version 1.2.8 see user guide
  • password-change added to cloud options dialog
  • added support to define defect density Nt as a function of depth for a SRH defect
  • lifetime-curve input improved to seperate intrinsic and extrinsic contributions for improved loss analysis
  • added bifacial TOPCon example for fitting optical model including parasitic absorption in poly-Si (in v2examples.zip: bifacial_TOPCon/optics_fit/)

2.1.5beta (21 August 2021)

  • bugfix: MPP and pMPP was wrong for JV-curve with user-defined Vterm and sunsVoc-curve with user-defined suns values, respectively
  • improved ordering of PLA and CLA
  • improved update procedure (for next update)

2.1.4beta (14 July 2021)

  • bugfix: single JV-point and EL-PL solution types partly not working
  • bugfix: some RAT and QE results were potentially wrong for multiple skins per side
  • MultiDomain in generic syntax: now requires definition of the domains origin (= corner coordinates) instead of position (= center coordinates)
  • further MPP and Jsc algo improvements / fixes
  • other fixes and improvements

2.1.3beta (24 June 2021)

  • introduced user management in GUI for license admins
  • improved stability and accuracy of Jsc and MPP determination
  • reordered 2D arrays in hdf5 file (only affects users directly reading the hdf5 file)
  • bugfix preventing a user-defined material to be used in some cases
  • other bugfixes and improvements

2.1.2beta (11 May 2021)

  • fixed a username bug introduced in 2.1.1beta preventing some users from login
  • support for bulk lifetime-curve input finalized
  • fixed a rare MPP finding bug

2.1.1beta (10 May 2021)

  • bugfix: SRH recombination (with the highest index) was not applied
  • added RsLoss (at MPP) to scalar results: series resistance calculated from sum of resistive power losses
  • many other bugfixes and improvements
  • added [2014 unit cell examples for version 2] (examples/2014_unit_cells_v2.zip)

2.1.0beta (27 April 2021)

  • detailed skins are now supported, so far only by ‘single-point’ multiscale coupling
  • bugfix: spatial data was never stored
  • several other bugfixes and improvements

2.0.0beta8 (20 March 2021)

  • bugfix: the combination of proxy and secure connection did wrongly produce an error message
  • bugfix: defined-generation did result in zero generation
  • some unit related bugfixes

2.0.0beta7 (02 March 2021)

  • bugfix: the existence of version 1 cloud-simulations did cause a connection abort / crash
  • feature and coordinate information is shown when hovering over geometry view

2.0.0beta6 (01 March 2021)

  • proxy server is now working
  • some improvements against cloud-disconnects
  • few other minor improvements

2.0.0beta5 (14 February 2021)

  • initial release of version 2