|Matthias May 3610822686 Updated Mirror URL, as TeaHub was renamed into Codeberg.||8 months ago|
|doc||10 months ago|
|src||9 months ago|
|.gitignore||10 months ago|
|LICENSE||10 months ago|
|README.md||8 months ago|
|am15g.dat||2 years ago|
|yasofo.py||8 months ago|
We assume that yasofo.py and am15g.dat are in the same directory and you have installed SciPy 3.x. Open a Python terminal, e.g. Ipython, in the directory where yasofo.py is located. Now type the following in your terminal:
import yasofo as yo yo.demo_single_junction()
for a demo for a single junction with coarse parameters.Type
for a demo for a double junction with coarse parameters. The line
will give you a demo for a triple junction with coarse parameters, and finally
will calculate a quadruple junction with coarse parameters. The latter can take a long time. After some time - depending on the order of the multi-junction - a graph with the max. STF efficiency over \Delta G should appear.
Another - though not yet as powerful - option is to simply type in you terminal
This will show the help. You can then run a demo with
python3 yasofo.py -d
The standard file format used here is equivalent to the format distributed with etaOpt by Fraunhofer ISE. It can be downloaded from their website. See also Letay and Bett, Eur. Photovoltaic Sol. Energy Conf., Proc. Int. Conf., 17th, 2001, 178-181.
In the etaOpt archive file, you will find a folder ‘spectra’, containing AM0, AM1.5D, and AM1.5G spectra.
Another source for spectra is e.g. NREL. There, one can download the ASTM G-173-03 spectrum, the convenient .csv data format can be found in the provided .zip archive. But beware! The computation time scales approximately with n^x, where n are the datapoints in your spectrum and x is the order of the multi-junction.
The AM1.5G spectrum supplied with YaSoFo originates from etaOpt and is redistributed with friendly permission of the authors.
A nice overview of the optical properties of water with data and references can be found at the Oregon Medical Laser Center.
a) Let us assume you want to find the best double junction bandgap parameters for water splitting (E0=1.23eV). Your absorbers are not the very best, so your open-circuit photovoltage is 500 mV lower than the bandgap/e, but you have very good catalysts, i.e. IrO2. Your solar spectrum is the unmodified AM 1.5G spectrum.
What would be the very best bandgap combination and what efficiency could you get out of it?
Start a python console, e.g. Ipython3 in the directory where you have yasofo.py and your solar spectrum.
import yasofo as yo yo.find_max_double(E0=1.23, voltage_loss=0.5, only_print_results=True, db=False)
You should see a text stating max. efficiency and bandgap combination.
b) If you want to see the various bandgap combinations with their resulting performance:
yo.best_gaps_double(E0=1.23, voltage_loss=0.5, db=False)
You should now see a 2d plot with the STF efficienciy as a function of the bandgaps.
If your absorber is approaching the detailed balance limit, you can calculate the detailed balance limit by setting db=False (or omitting it completely), the voltage_loss variable is then ignored, if present:
c) You want to modify you AM1.5G spectrum by the absorbance of a catalyst or electrolyte. Let us assume you have a file ‘absorbance.dat’ with your wavelength (nm) in the first column and you absorbance (1/cm) in the second column, has 5 lines of header and your absorbing layer is 5 mm thick.
am15g_mod=yo.mod_spectrum_by_abs('absorbance.dat', thickness=0.5, header=5)
You can plot the spectrum to see if things are fine
Let us now see how a tandem performs with the modified spectrum:
yo.best_gaps_double(data=am15g_mod, E0=1.23, voltage_loss=0.5, db=False)
Licensed under the EUPL, Version 1.2.