The font for graphics and text in the main view was not always properly set after loading a configuration. This has been fixed.
Introduced with object generation 3.97
Visualizing a layer stack in views is now more flexible. Instead of representing each layer as a rectangle of constant height (i.e. the same height for all layers) the graph can now better visualize the proportions by drawing the rectangles with heights proportional to the thickness of the layer.
The graphs below show the difference. Up to now layer stack views looked like this:
Now you can have this:
This kind of drawing makes it much easier to compare layer stacks:
The new kind of drawing is activated by a click on the layer stack in the view. You will be asked for the thickness that the height of the base rectangle should represent. The value must be specified in micrometers – if you set a value to 0.075 the base rectangle shows 75 nm of the stack.
Since layer thickness values in stacks with thin films and (incoherent) thick layers are very different, it is not possible to see thick layers and thin films in one graph. Thin films with thicknesses 100000 times smaller than thick layers will simply not be visible (like in real life). If you still want to show the thin film part of the stack with the new feature you have to use 2 layer stacks: one for the thin film coating alone and the second one for the complete layer stack. In this case you have to insert the coating as ‘included layer stack’ in the second one.
SPRAY is a powerful tool to optimize the performance of solar cells. In order to simplify the modeling of crystaline silicon PV modules we have added an easy way to define macroscopic surface texture. This new feature can be used for both the covering glass and the Si wafer surface.
A PV module consists of a silicon wafer with top and backside contacts:
The wafer is embedded in EVA:
The EVA is covered by glass which gives mechanical strength and protection for the next 30 years. In order to maximize the generation of electric power one may introduce an
- anti-reflection (AR) layer between silicon and EVA
- AR layer between glass and air
- surface texture of the silicon wafer
- surface texture of the cover glass
- diffusely reflecting white backside
- low-absorptive cover glass
In order to find out how much the PV output is increased by these improvements one can perform realistic ray-tracing computations with SPRAY. This can save a lot of experimental work and costs. SPRAY performs 3D spectral ray-tracing and records where how much radiation is absorbed. It can, for example, output the spectrum of absorbed light in the wafer
as well as the spatial distribution of absorbed light:
The graph below shows a comparison of the absorbed fraction with and without a simple AR coating (a single SiN layer) between silicon and EVA:
The modeling of macroscopic surface textures is now much easier using the new object type ‘Periodic surface texture’. This is a rectangle with a regular surface pattern in the x- and y-direction. You can set the periodicities in both directions and select a pattern type. Depending on the type of texture you can set additional parameters in the object dialog:
The available textures are the following:Sine profile
Pyramids Inverted pyramids Cones Inverted cones Half spheres Inverted half spheres
Bug fix in object generation 3.96
After execution of the ‘Range’ command in spectra and material objects the settings of the x-axis in the graph has been changed, ignoring the option ‘Automatic graphics generation’. This has been fixed – the axis labels remain unchanged.
If BREIN was started after a long break during which a large number of results have been generated, the software was not responsive for a long period of time (because it was reading many result files). You can now limit the number of result files to be processed during one timer event (which happens every second). A number of 20 is reasonable and has been set as default value. You can change this choice in the Settings submenu.
Starting BREIN takes a while, and impatient users happened to start the program several times. This is now avoided – BREIN checks if it is running already and refuses to be started a second time.
Object generation 3.96
The management of the menu items that show the last accessed files has been improved. Since the list of files is now stored in a different way the menu items are all empty when you change to the new version. During your work the items will fill up again.
You can now use measured sheet resistance values for analysis of traverse data. This can significantly stabilize the fitting of silver based glass coatings, in particular if you fit both silver thickness and quality (using the Drude model damping constant).
In order to use sheet resistance values, you need to update VAAT_spectrum_scanner.exe, bright_eye_traverse.exe and the OLE server code.exe. All program files must be generated on August 29, 2014, or later.
Please read this as well: CODE link
While BREIN is running, it produces a lot of files in the archive and the database folder. These directories are subfolders of the BREIN program directory (up to now). In order to avoid that this directory blows up over time you can use the following options to store all permanent data outside the program folder. Within the BREIN program folder only temporary files are used – so it should not increase in size any more. Make sure that the Cleaner program is running, and connect BREIN to an external SQL database if you can.
The archive can now be located anywhere in your file system – it need not be a subdirectory of the BREIN program folder.
You can switch off writing result files to the archive.
You can switch off writing scan files to the archive.
The database history files can be stored to the archive as well, instead of being stored in the product folder within the database.
A new OLE command has been implemented: import_measured_sheet_resistance(a_value : float)
Use this command to pass a measured sheet resistance value to CODE. This is useful if you would like to use this value in a fit, in addition to measured optical spectra.
The value is passed to the list of integral quantities. The list must contain an object of type ‘Sheet resistance’ with the name ‘Sheet resistance fit’ – only in this case the value is passed as target value.
In order to use this value you must set the option ‘optimize’ of the sheet resistance object. If you want to fit both spectra and sheet resistance, you must set the global fit option ‘Combine fit deviation of spectra and integral quantities’.