Skip to content

A photovoltaic simulator with automatic differentiation

License

Notifications You must be signed in to change notification settings

romanodev/deltapv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

∂PV

A photovoltaic simulator with automatic differentation, built on JAX.

Pull requests welcome!

Currently targeting inorganic materials.

For more examples, including performing efficiency optimization of a perovskite solar cell and discovering unknown material properties in a cell, see the following Google Colab

To install via pip, simply use the command

pip install deltapv

deltapv features a simple interface for most common cell structures. For a simple p-n homojunction, the following code computes the IV curve:

import deltapv as dpv

material = dpv.create_material(Chi=3.9,
                               Eg=1.5,
                               eps=9.4,
                               Nc=8e17,
                               Nv=1.8e19,
                               mn=100,
                               mp=100,
                               tn=1e-8,
                               tp=1e-8,
                               A=2e4)
des = dpv.make_design(n_points=500,
                      Ls=[1e-4, 1e-4],
                      mats=material,
                      Ns=[1e17, -1e17],
                      Snl=1e7,
                      Snr=0,
                      Spl=0,
                      Spr=1e7)
results = dpv.simulate(des)

Several convenient plotting functions are provided to visualize important quantities.

dpv.plot_iv_curve(*results["iv"])
dpv.plot_bars(des)
dpv.plot_band_diagram(des, results["eq"], eq=True)
dpv.plot_charge(des, results["eq"])

iv

bars

band

charge

For an overview on PV cells and the physics behind the drift-diffusion model, see this helpful resource: https://www.pveducation.org.

If you use ∂PV, please kindly cite the following paper:

Mann, Sean, Eric Fadel, Samuel S. Schoenholz, Ekin D. Cubuk, Steven G. Johnson, and Giuseppe Romano.

"∂ PV: An end-to-end differentiable solar-cell simulator." Computer Physics Communications (2021): 108232 [pdf].

About

A photovoltaic simulator with automatic differentiation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages