Skip to main content

A Python package for calculating limits on the performance of photonic devices using dual optimization methods.

Project description

Dolphindes 🐬

CI: Quality CI: Tests Daily Full Tests codecov Ruff

Dolphindes (very loosely, Dual Optimization Limits for PHotonic/PHysical INverse DESign) is a Python package for calculating limits on the performance of photonic devices using dual optimization methods. It can calculate structure-agnostic performance bounds for a wide range of photonic problems. The package works by relaxing the photonic inverse design problem into a field optimization problem, which can then be further relaxed into a convex problem using Lagrange duality.

📦 Installation

1. Install System Dependencies

Make sure you have libsuitesparse-dev installed. This is required by scikit-sparse

For Debian/Ubuntu systems:

sudo apt-get update
sudo apt-get install libsuitesparse-dev

2. Clone this repo and activate the provided conda environment dolphindes.yml

3. If using your own environment, instead run

pip install .

🔧 Running Tests

To run the dolphindes tests, simply run

pytest

Optionally, provide the -s flag to print the output of the tests. You will need to have pytest and pytest-dependency installed in your environment.

📚 Documentation and Tutorials

Documentation may be found at dolphindes.readthedocs.io

Citations

If you use dolphindes in your work, please cite the following paper:

[Review article coming soon]

Additionally, if you use dolphindes to do Verlan design, you should cite the initial Verlan papers:

@article{chao_amaolo_blueprints_2025,
      title = {Bounds as blueprints: towards optimal and accelerated photonic inverse design},
      author = {Pengning Chao and Alessio Amaolo and Sean Molesky and Alejandro W. Rodriguez},
      journal = {Opt. Express},
      keywords = {Fourier transforms; Inverse design; Raman scattering; Ring resonators; Stochastic processes; Whispering gallery modes},
      number = {5},
      pages = {7337--7350},
      publisher = {Optica Publishing Group},
      volume = {34},
      month = {Mar},
      year = {2026},
      url = {https://opg.optica.org/oe/abstract.cfm?URI=oe-34-5-7337},
      doi = {10.1364/OE.585505},
}

@article{molesky_verlan_2025,
    title = {Inferring {{Structure}} via {{Duality}} for {{Photonic Inverse Design}}},
    author = {Molesky, Sean and Chao, Pengning and Amaolo, Alessio and Rodriguez, Alejandro W.},
    year = {2025},
    month = apr,
    number = {arXiv:2504.14083},
    eprint = {2504.14083},
    primaryclass = {math},
    publisher = {arXiv},
    doi = {10.48550/arXiv.2504.14083},
    archiveprefix = {arXiv}
}

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

dolphindes-0.2.1.tar.gz (71.7 kB view details)

Uploaded Source

Built Distribution

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

dolphindes-0.2.1-py3-none-any.whl (60.0 kB view details)

Uploaded Python 3

File details

Details for the file dolphindes-0.2.1.tar.gz.

File metadata

  • Download URL: dolphindes-0.2.1.tar.gz
  • Upload date:
  • Size: 71.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for dolphindes-0.2.1.tar.gz
Algorithm Hash digest
SHA256 0bccd6c18cd46871fdabf3ccb3a55f6e4d74ffd5d5fd0896a645a0773cff3d7a
MD5 0fedaf3aeca390bebc57cbc5dfce8548
BLAKE2b-256 5fd7d2525c21b62324a21b876e028a06021f30363fff079888aa67986d68f0a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for dolphindes-0.2.1.tar.gz:

Publisher: publish.yml on physical-design-bounds/dolphindes

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dolphindes-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: dolphindes-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 60.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for dolphindes-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 21e88cad091670caf8d473e0655f114e6c36740b8b71daf06ab8c16ccd192255
MD5 e2ebb4667a7236d7f5c743b3bd192fc1
BLAKE2b-256 a583a758187876db00e75fa10a5a12f5660f75c5a2fa5aeb785ffed5d51de593

See more details on using hashes here.

Provenance

The following attestation bundles were made for dolphindes-0.2.1-py3-none-any.whl:

Publisher: publish.yml on physical-design-bounds/dolphindes

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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