the .gpvdm simulation file format
The .gpvdm file is simply a zip file. If you rename the file so to be called gpvdm.zip you will be able to open it in windows explorer or your favourite zip viwer. Inside the .gpvdm file is another file called sim.json. You can view this file in any text editor but the file is quite long so I recommend you use firefox to view it as it has a built in json viewer. Json is a simple way of storing text and configuration information first developed for Java, you can see examples here: https://json.org/example.html. Or below in code listing
.
If you make a copy of sim.json outside the .gpvdm archive, then rename the sim.zip back to sim.gpvdm, gpvdm will ignore the sim.json file within the sim.gpvdm archive and revert to the plain text file stored in the simulation directory. This feature can be useful for automation of simulations as you can simply edit the sim.json file using your favourite programming language without having to learn about reading and writing zip files. If you open the sim.json file in firefox it will look like
, also have a look at the file in notepad to get a sense of what is in it.
Figure:
An example sim.json file opened in firefox.
|
You can see that the json file has various headings, key headings are listed below in table
Table:
Key headings/sections in the sim.json file.
Heading |
Description |
|
|
sim |
General simulation information |
|
|
jv |
JV curve configuration |
|
|
dump |
Defines how much information is written to disk |
|
|
math |
Math configuration for the solver |
|
|
light |
Optical transfer matrix configuration |
|
|
light_sources |
Configuration of light sources |
|
|
epitaxy |
Defines the structure of the device |
|
|
thermal |
Thermal configuration |
|
|
thermal_boundary |
Thermal boundary config. |
|
|
exciton |
Exciton config |
|
|
exciton_boundary |
Exciton boundary config. |
|
|
ray |
Ray tracing config. |
|
|
suns_voc |
Suns-Voc |
|
|
suns_jsc |
Suns-Jsc |
|
|
ce |
Charge Extraction config. |
|
|
transfer_matrix |
Light transfer matrix config |
|
|
pl_ss |
PL in steady state |
|
|
eqe |
EQE config. |
|
|
fdtd |
FDTD config. |
|
|
fits |
Fitting config. |
|
|
mesh |
Electrical mesh config. |
|
|
time_domain |
Time domain config. |
|
|
fx_domain |
FX-domain config |
|
|
cv |
CV config. |
|
|
parasitic |
Parasitic components |
|
|
spm |
Scanning Probe Microscopy config. |
|
|
hard_limit |
Setting hard limits for sim params. |
|
|
perovskite |
Perovskite solver config. |
|
|
electrical_solver |
Electrical solver config. |
|
|
spctral2 |
SPCTRAL2 |
|
|
lasers |
fs Lasers |
|
|
circuit |
Circuit solver config. |
|
|
gl |
OpenGL config |
|
|
world |
Defines the world box |
|
|
|
If you wish to programmatically drive you can simply use one of the many available json editors most languages have them freely available.