Why does gpvdm exist?

Mankind is facing an existential crisis, by burning fossil fuels we are releasing ~9.795 gigatonnes of CO2 per year, and thus we are steadily changing the composition of Earth's atmosphere. Since 1960, CO2 in the atmosphere has risen by around 30%., this is making our home Earth a more difficult place to live on. As a society we have to reverse this trend if we want to survive. Thin film devices such as solar cells and OLEDs offer a viable way to reduce our CO2 emissions, either by providing low carbon electricity, or providing an efficient way to use the energy once generated. It is therefore important that technologies based on thin film devices continue to be developed and suceed. By developing and releasing gpvdm, I hope, I am enabling scientists throughout the world to understand these devices a little bit better, which I hope will contribute in a very small way to solving our climate crisis.

Is there a road map for gpvdm?

No not really, I add features as and when I need them or my collaborators need them. If I get free time then I add features which nobody has asked for but I think are interesting to write. If gpvdm does not do what you want it to do then send me a mail, let's collaborate it it could be fun!

Can I publish papers with gpvdm and use the results in industrial/academic enviroments?

Yes, do what you want with the results from gpvdm.

Bugs, new feature requests.... how you can get the most out of both me and gvpdm...

Firstly thanks for downloading and using gpvdm! I really appreciate this and I hope you find it useful. I get quite a lot of feature requests from people wanting features added or for bugs to be fixed. I really appreciate the feedback!

However, I am currently employed at a UK University and my time is split between teaching, research and admin. My performance in my job is measured by the number of high impact papers I push out per year. I therefore have to prioritize feature requests and bug fixes for people who would like to write a paper with me (i.e. my colobrators).... Therefore if you would like:

If you don't need help from me to use gpvdm then please feel free to do what you want with the results - no need to contact me.

Should I write as gpvdm or GPVDM?

Gpvdm is a unix command, and unix has a case sensitive file system, therefore gpvdm should be written in lower case. Except at the beginning of a sentence, where it is OK to capitalize it.

How do I add new optical materials to the material data base?

Watch this video here, also read this section in the tutorial

Is there a database of electrical parameters?

No, currently not, I only include a database of optical n/k data, this is because gpvdm is primarily aimed at simulating disordered thin film devices. In these type of devices electrical parameters such as recombination rates/mobilities, change depending on how the film was fabricated and even in which lab it was made. I suggest you either fit the model to experimental data to determine which electrical parameters to use or to search the literature for which values you should be using.

Why is www.gpvdm.com blocked in my country and how do I get around this?

A1: I don't know why it's blocked. A2: Try replacing https links with http, some countries don't like https traffic as it stops gpvements watching what you are looking at on the web... If you experience problems accessing the gpvdm webpage in your area of the world, drop me an e-mail, I will do my best to make it accessible to you.

How often are updates to gpvdm released?

At least every month, keep your eye on the news feed but sometimes daily - depending on what the people I work with need. I always recommend using the latest version of gpvdm, as I am always fixing bugs and improving it.

Does gpvdm come with any type of warranty, is it fit for any particular purpose?

No, not at all. I run this project in my free time, so use it at your own risk. Having said that, I use gpvdm for my own work so I always do my best to ensure the latest version is as good as it can be. In my view, it is much better than many of the competition.

I really like what you have done with gpvdm, are you available for consultancy work?

Yes absolutely, send me an e-mail.

You ignored my e-mail, what should I do?

I get about 100 e-mails per day, if I don't answer, just resend your e-mail until I answer :).

Should I use anything but the latest version of gpvdm?

No. I highly recommenced you always upgrade to the latest version of gpvdm. I do not support old versions.

Common errors

I get the error: Can not decode archive data

You have deleted gpvdm_local in your home directory, gpvdm_local is needed for gpvdm to run.

I get the warning: The solver has not converged very well, why and what should I do?

Solving drift diffusion equations is a mathematically a very tricky thing to do. This message means that you have given the solver a problem which is hard to solve, and it did not find the answer very accurately. It might be fine to ignore the message, but on the other hand you might want to take a close look at the voltage point/time step point where that message was generated. You can get this message for example if you have set up a device with parameters which are slightly nonphysical. Think carefully about the device design/material parameters you are feeding the model. Do they make sense? Try to go back to a working device structure then figure out exactly which parameter is not working/causing it to crash.

I get the error: nan detected in the newton solver, why and what should I do?

You have managed to make the model divide something by zero. This generally happens when you get very very low numbers of electrons/holes in trap states (zero), this generally happens when you start having carrier densities below 1.0 m-3. Try to think why this could be in your device.

I get the error: Holes asking for xxx but range zzz - yyy, why and what should I do?

Evaluating the Fermi-Dirac/Maxwell-Boltzmann carrier distribution equations is done by tabulating them first. For some reason you are driving the Fermi-levels out the range in which they are tabulated. Do you have very low carrier densities on the contacts, or do you have very very high carrier densities on the contacts? This might also be happening because the solver is failing to converge form a previous simulation step, so the IMREFs are non physical anyway. Again try to think if your device is physically correct. In general if you perturb the simulation too much, at a simulation step you can also cause these sorts of problems, for example if you do a big voltage step, or apply too bright a light pulse.