General-purpose Photovoltaic Device Model - gpvdm
Features which don't exist yet but are on the road map:
Full 3D model.
Ability to simulate panels and large area/complex contacts.
A better contact editor with CAD like interface.
Far/near field calculations for OLED model.
Accelerated FX domain model.
Exciton model - although I'm not convinced this is needed.
Port to BSD (not started)
Improved convergence using backtracking.
Port to mac.
Speed up optical model.
Improve initial guess for 2D and may be 1D - for speed up.
Translate into as many languages as possible - help needed!.
Features which are half implemented but not yet fully working:
Hydrodynamic model energy balance model. (code now included but not polished)
Lattice heat model. (code included but not polished)
FDTD optics model, with GPU acceleration (works with external FDTD solver).
Better materials database (half done)
Better plotting (half done)
Fitting to experimental data
Clean up of clustering code and make it usable by other people.
Recent releases of gpvdm:
23/6/2017: gpvdm 4.95 released
Non linear mesh for Helmut
Cache added for output files
4/6/2017: gpvdm 4.94 released
Lots of bug fixes coming from the work with Elizabeth.
Reverse polish notation parser added.
Electrical parameters now exported in xlsx file.
Recent releases of gpvdm:
14/4/2017: gpvdm 4.93 released
Plot widget now expands properly.
Better import function.
Added device modeling workbook to the website for students/educators.
14/4/2017: gpvdm 4.92 released
Better file open dialog, includes ability to delete files and make new ones.
Ability to make new materials added to file dialog.
QColor widget added to tab for editing of material layer colors.
xyz buttons added to gui.
One value for Eg/Xi in the materials data base.
Added change log to materials.
Fixed bug in QCombobox in tab widget.
Race times fixed in scan window - working again.
DESKTOP files now option in configure.ac for cluster compatibility.
info.txt file in materials now not needed.
info.txt file in materials now removed.
Split the optical spectra out from the materials database
Added an optical spectra editor for custom light sources.
Bug fixes in scan window - it's now working again.
More Chinese language updates.
Clustering code now more or less working.
A general tidy up of the materials database.
The way icons are generated and named now fits more with the freedesktop standard.
25/3/2017: gpvdm 4.91 released
./, bug fixed in sscanf.
25/3/2017: gpvdm 4.90 released
Added perovskite model.
Added cost data.
Added equation/real data selector to equtaion window.
18/3/2017: gpvdm 4.89 released
Fully working in Chinese.
configure.ac adapted for opensuse.
rpm for opensuse generated.
8/3/2017: gpvdm 4.88.3 released
Back end now supports Chinese.
Removed all printf commands all screen IO now goes though printf_log.
Support for utf8 in windows.
IPC now supports utf8.
More translation fixes.
Recombination rate knp units fixed.
Make it work out of any directory under windows
Make the terminal window scroll to bottom
Fixed units of generation rate.
Fixed 2d plots in optical window.
Changed “Pos error” to something
Link up light intensity dialog box to 3d picture.
Simplified Chinese support for front end
Rewritten about box and a few outher windows not to use gui builder.
Added gettext support to back end.
Backend changed to support simplified Chinese - few show stopper bugs at the moment.
Added Pmax to sim_info.dat
Removed toolbar and replaced with a ribbon/tabbed toolbar
Started to remove device.inp
Added parasitic.inp and window
Moved lots of code out of gpvdm.py
19/2/2017: gpvdm 4.87 released
Rewrite of the plot widget.
Extension of the model to 2D.
Added Vapplied to left and right of device.
lrbias now gone.
Start of 3d plotting code.
OFET structure included in model and working.
newton_2d solver finished.
Multicontact devices now working.
26/1/2017: gpvdm 4.86 released
Fixed c-Si solar cell model, now using Slotboom normalization in the solver.
Fixed CIGS solar cell model.
Fixed left/right button in device tab.
26/1/2017: gpvdm 4.85 released
A few really small bug fixes in response to bug reports.
22/1/2017: gpvdm 4.84 released
Improved materials database now order in sub directories.
Added materials data from the Campoy-Quiles Group, Barcelona.
Bug fixes for other types of solar cell.
19/1/2017: gpvdm 4.82 released
Added the ability to load in external optical fields.
16/1/2017: gpvdm 4.81 released
Loads of translation/German language fixes - still not perfect!.
Added reference manager, so we know where the material data comes from.
Updated the fitting code, still crashes.
Fixed some seg faults by remeshing, not sure how it was not crashing before.
html bug fixes for output window
Added dump control button.
Added transparencies to opengl layers.
Added flags folder to encourage people to help with the translation.
New language selector window.
23/12/2016: gpvdm 4.80 released
It will now compile and run on a Raspberry Pi 3 running raspbian.
14/12/2016: gpvdm 4.80 released
Bugs in optical window fixed.
Fixed lots of bugs in cluster code mainly stemming from the move to python 3.
Tweaked the build system so the code will not need gui components when building on the hpc.
make_m4.py now has command line help.
3/12/2016: gpvdm 4.79 released
res files are now generated for the windows exe.
The windows exe now has an icon.
When gpvdm tries to write to data.xlsx when it is open, errors will be correctly handled.
The bug in move down arrow in main gui has been fixed.
I've started to add fitting code to the gui.
Bugs in cluster back end fixed.
Bug fixed in JV curve plugin - this lead to large values of Jsc.
Photon escape probability plugin published.
math.inp controls now added to gui.
15/11/2016: gpvdm 4.78 released
Install paths with a space are now allowed.
Added ray tracing for LED structures.
Now dumps LI curve.
A walk through of how to simulate OLEDs with gpvdm
the video includes sound.
7/10/2016: gpvdm 4.77 released
Losts of small bug fixes as reported by users, mainly in GUI - thanks for the bug reports.
Reference manager added.
The plot widget was displaying 2D graphs using mesh points as the scale and not the the real axis, this showed up several bugs which have now been fixed.
Color bar added to the 2D plot widget - user request.
More bugs fixed in the fx domain window.
More gtk references removed.
21/09/2016: gpvdm 4.74 released
Bug in scanwindow fixed - user reported - thanks
Build system updated to autogenerate non-adim version of gpvdm
15/09/2016: gpvdm 4.74 released
Bugs in plotting widget fixed - user reported bug
New expitaxy file format to fix bug in scan window
Delete destination zip file now removed before overwriting - user reported bug.
Another bug in IS code fixed.
Save on band widget now works again.
Divide by zero in opengl widget fixed - user reported bug.
14/09/2016: gpvdm 4.73 released
Bugs in the impedance spectroscopy model fixed – it now works again.
Improved function to load data form data files, no longer needs to be told how long the file is
Rewritten how the materials database works.
Added code for cost calculations
Added code for payback time calculations
fixed bugs reported by users.
Export form the snapshot window now works again.
6/09/2016: gpvdm 4.72.1 released
Small bugs fixed in opengl code/2d fallback.
Bands tab fixed.
Updates to gpvdm
5/09/2016: gpvdm 4.72 released
Load of bug fixes mainly stemming from the gtk to QT transition
Error reporting system
Started fixing bands tab
Time domain tab now working
Rewrite of code to read in simulation data to the gui
opengl graph implemented
gui for contacts now working
Dunps unified xlsx files for every simulation
18/08/2016: gpvdm 4.70 released
Converted interface from python 2.7 to python 3.0
Transitioned from the gtk to the QT widget set.
OpenGL diagram now in main window with fallback to a 2D drawing widget.
Back end of the model and the gui can handle 3D devices - although not all the math is yet included to model 3D devices.
Better terminal in windows
Fixed bug in fx domain code.
The new opengl device editor
06/07/2016: gpvdm 4.44_4 released
NPB material now present - OLED simulation working again.
Fixed transient simulation complaining about pulse.inp.
Fixed scan window bug.
26/06/2016: gpvdm 4.44 released
Lots of small bugs fixed.
Less confusing layout of GUI and tabs.
Deleted the old clustering code.
Added interface to new clustering code.
Rewritten scan window code so it's more sane.
Lasers configure window added.
Removed bugs in scan window.
20/04/2016: gpvdm 4.42 released
New build system. Now using autotools.
No more auto building of .c/.h files.
Plugin architecture rewritten to all be dynamically linked.
Lots of bugs fixed.
--simode will can now be used to set the simulation mode from the command line.
Code clean up.
1/3/2016: gpvdm 4.40 released
Bug fixes to make the long double code work.
Added update function for windows.
More build chain fixes
Fixed makefile bugs
Better makefiles, and improved build prosess.
Moved solvers to dlls second attempt
Moved solvers to dlls
Stabalized solver by replacing double wiht long double, and normalizing veriables in the solver.
Lots of bug fixes
More fx domain updates - IS now works.
Code tidy up.
Fx domain updates
Moved code arround for fxdomain.
Dumps output to log file
Even more german translation
Dec 30, 2015
Started german translation
Fixes with inport export files
Update of readme
Updates for ubuntu
New time domain plugin replacing old ones
Merget of main code and gui
Start of rewrite of time domain code
8/12/2015: gpvdm 4.2.1 released
The model will automatically remesh it's self it the electrical mesh does not match the layer structure.
Absorption now written out of the optical solver.
jvexternal.dat renamved jv.dat
phys directory renamed materials for clarity
.mat files renamed omat for windows compatibility.
wordpad will now open .omat files by default.
2/12/2015: gpvdm 4.2.0 released
Ability to simulate OLEDs
Luminescence tab added
Much better multilayer support
Lots of bug fixes
23/11/2015: gpvdm 4.1.3 released
Installer now writes registry key to tell gpvdm where it is installed, gui and core read this key.
22/11/2015: gpvdm 4.1.2 released
snapshots folder split up into sub directories - this seems a more sane way of presenting the data
Time and voltage now stored in each plot file
recursive remove_dir function added to clean snapshots dir works in linux/windows
22/11/2015: gpvdm 4.1.1 released
Windows file extension integration
21/11/2015: gpvdm 4.1.0 released
For full change log see git hub page
Import export functions fixed
Model can now do multiple layers - will be needed for OLEDs
Integrated a help system
All inp files stored in sim.gpvdm
Bug fixes for windows
03/09/2015: gpvdm 4.0.2 released
Placed nodebook code in own class
Added DBUS and windows pipe support of IPC
Lots of bug fixes
Updated layer editor
Added 3d drawing of device
Updates to scan window to handel nested simulations
Time domain mesh editor updates
Splash screen and other minor fixes
Added time mesh to gui
Cluster code update
Redrew some icons
Detailed info on https://github.com/roderickmackenzie/gpvdm_gui
08/06/2015: gpvdm 2.90 released
Again I have done loads of bug fixes - mainly to how the GUI and core interact
Detailed info on https://github.com/roderickmackenzie/gpvdm_gui
2D (position wavelength) plots of the photon density within the device
Included the ability to script in the scan window
Fixed bugs in the win32 installer.
Released all icons to github
Rewrite of the plotting code (again) to make it more sane
Fixed copy paste in the scan window
Released clustering code - although it's super buggy.
02/04/2015: gpvdm 2.80 released
Loads of bug fixes
Rewritten plotting code
Model now temperature dependent
Information about plots stored in plot files
22/03/2014: gpvdm 2.70 released
Bug fixes in rpm build for new release.
Optical model now dumps to a zip file to save inodes.
Removed the GUI from this rpm leaving just gpvdm_core and the input files.
Fixed broken find_voc function
Updated archive import function to handle compressed archives
Updated rpm building tools to handle new compressed archives
Started moving input files into archive.
dynamic files placed in own directory
files that no longer exist are automaticly removed from used file menu.
scan_tab opendialog opens in correct directory.
Fixed bug in the close tab button reported by Simon Schmeisser.
Fixed bug in rpm_build script which damaged the optical model code
Made the about window display the correct version number
removed simulation_dir variable from gpvdm, fixed more
removed gpvdm_clone replaced with gpvdm --clone
Fixed missing icon in optical simulation window
removed bash script gpvdm_dump and added option --dump-tab to gpvdm
made tool bar show before material parameter window
disabled menu callbacks during load
improved the import function so it tries to import a simulation even if it an old version
made version numbers between gui and core the same
Windows now remember where they are put after application shutdown.
Fixed loading bugs
Made the optical model dynamicly linked rather than statically linked
Improved plotting of single point data, i.e FF, Voc and Jsc.
Added window to analyze simulation data
More meaningful icons
Unified progress bar/spinner widgets
Moved optical output into one directory
Parameter scan window can now do multiple simulations
Parameter scan window can deal with multiple CPUs/cores
Improved parameter scan window GUI
Mesh editor in it's own window
13/11/2013: gpvdm 2.4-1 released
Added export material parameters to pdf/tar.gz/jpg file
Import material parameters from tar.gz file
Parameter scan window updated and fixed
32 bit compatibility fixed
9/11/2013: gpvdm 1.0 along with gpvdm_core 2.2-1 released
Fixed missing matplotlib dependencies in the rpm
Better graph plotting functions
Units now shown for material parameters in gui
Better error handling
Fixed rpm installer bugs
17/10/2013: gpvdm 1.0 along with gpvdm_core 2.1-1 released
Removed memory leak in gpvdm_core
Removed crashes in free-free carrier recombination calculation gpvdm_core
More functional gui
x-windows launcher integration
6/9/2013: gpvdm 1.0 along with gpvdm_core 2.0-2 released
4/9/2013: gpvdm 1.0 along with gpvdm_core 2.0 released under GPL V2.0