Skip to main content

Solar cell simulator with automatic differentiation

Project description

∂PV

A photovoltaic simulator with automatic differentation, built on JAX.

This repository is archived and no longer mantained. We plan on integrating differentiable PV simulations in a forthcoming multiphysics package.

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].

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

deltapv-0.0.5.tar.gz (923.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

deltapv-0.0.5-py3-none-any.whl (929.2 kB view details)

Uploaded Python 3

File details

Details for the file deltapv-0.0.5.tar.gz.

File metadata

  • Download URL: deltapv-0.0.5.tar.gz
  • Upload date:
  • Size: 923.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for deltapv-0.0.5.tar.gz
Algorithm Hash digest
SHA256 8c63ea6832bc2143942c64be0ae003b7a0fcaf5b664a2de02b9b2d9ebccaaaa8
MD5 36163e5bb3ee346abd4aa4d194f17b47
BLAKE2b-256 63ff690d5b2a89f81a4d4c16b5246e2511b394f99c4b0c33de561a98984eaed3

See more details on using hashes here.

File details

Details for the file deltapv-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: deltapv-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 929.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for deltapv-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 b683d329829f4c181afefc9efab9e041914b547568212a70d3355a7082a0df47
MD5 659d88d5c97f655a29a78d140dc01a67
BLAKE2b-256 c8549312028981a89f15aa50f5b59c6745db4d73b2445456cbf74fa7e2695dc3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page