All Projects → flaport → photontorch

flaport / photontorch

Licence: AGPL-3.0 License
Highly parallel simulation and optimization of photonic circuits in time and frequency domain based on the deep-learning framework PyTorch

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to photontorch

fdtd
A 3D electromagnetic FDTD simulator written in Python
Stars: ✭ 195 (+572.41%)
Mutual labels:  simulation, simulation-framework, photonics
SiEPIC Photonics Package
A Python (v3.6.5) package that provides a set of basic functions commonly used in integrated photonics.
Stars: ✭ 22 (-24.14%)
Mutual labels:  simulator, photonics
Mipt Mips
Cycle-accurate pre-silicon simulator of RISC-V and MIPS CPUs
Stars: ✭ 250 (+762.07%)
Mutual labels:  simulator, simulation
js-simulator
General-purpose discrete-event multiagent simulation library for agent-based modelling and simulation
Stars: ✭ 52 (+79.31%)
Mutual labels:  simulation, simulation-framework
Webots
Webots Robot Simulator
Stars: ✭ 1,324 (+4465.52%)
Mutual labels:  simulator, simulation
Awesome Emulators Simulators
A curated list of software emulators and simulators of PCs, home computers, mainframes, consoles, robots and much more...
Stars: ✭ 94 (+224.14%)
Mutual labels:  simulator, simulation
ad-xolib
C++ library for Parsing OpenScenario (1.1.1) & OpenDrive files (1.7) ASAM Specifications
Stars: ✭ 56 (+93.1%)
Mutual labels:  simulator, simulation
Bullet3
Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.
Stars: ✭ 8,714 (+29948.28%)
Mutual labels:  simulator, simulation
opem
OPEM (Open Source PEM Fuel Cell Simulation Tool)
Stars: ✭ 107 (+268.97%)
Mutual labels:  simulator, simulation
siconos
Simulation framework for nonsmooth dynamical systems
Stars: ✭ 120 (+313.79%)
Mutual labels:  simulation, optimization
pluto-gps-sim
PLUTO-GPS-SIM generates a GPS baseband signal IQ data stream, which is then transmitted by the software-defined radio (SDR) platform ADALM-Pluto.
Stars: ✭ 74 (+155.17%)
Mutual labels:  simulator, simulation
Rinsim
RinSim is a logistics simulator written in Java. RinSim supports (de)centralized algorithms for dynamic pickup-and-delivery problems (PDP). The simulator is developed at the imec-DistriNet group at the dept. of Computer Science, KU Leuven, Belgium.
Stars: ✭ 91 (+213.79%)
Mutual labels:  simulator, optimization
Pgdrive
PGDrive: an open-ended driving simulator with infinite scenes from procedural generation
Stars: ✭ 60 (+106.9%)
Mutual labels:  simulator, simulation
Veins
Veins - The open source vehicular network simulation framework.
Stars: ✭ 173 (+496.55%)
Mutual labels:  simulator, simulation
Plankton
Open source simulator for maritime robotics researchers
Stars: ✭ 51 (+75.86%)
Mutual labels:  simulator, simulation
Incoherent-Light-Simulation
Simulation of the propagation of incoherent light, aiming to illustrate the concept of spatial coherence.
Stars: ✭ 98 (+237.93%)
Mutual labels:  simulation, photonics
Pioneer
A game of lonely space adventure
Stars: ✭ 979 (+3275.86%)
Mutual labels:  simulator, simulation
Blender Flip Fluids
FLIP Fluids is a powerful liquid simulation plugin that gives you the ability to create high quality fluid effects all within Blender, the free and open source 3D creation suite.
Stars: ✭ 983 (+3289.66%)
Mutual labels:  simulator, simulation
simobility
simobility - light-weight mobility simulation framework. Best for quick prototyping
Stars: ✭ 29 (+0%)
Mutual labels:  simulator, simulation-framework
antares
Digital circuit learning platform
Stars: ✭ 15 (-48.28%)
Mutual labels:  simulator, simulation

Photontorch

Photontorch is a photonic simulator for highly parallel simulation and optimization of photonic circuits in time and frequency domain. Photontorch features CUDA enabled simulation and optimization of photonic circuits. It leverages the deep learning framework PyTorch to view the photonic circuit as essentially a recurrent neural network. This enables the use of native PyTorch optimizers to optimize the (physical) parameters of the circuit.

Installation

Stable version

Photontorch can be installed with pip:

pip install photontorch

Development version

During development or to use the most recent Photontorch version, clone the repository and link with pip:

git clone https://git.photontorch.com/photontorch.git
./install-git-hooks.sh # Unix [Linux/Mac/BSD/...]
install-git-hooks.bat  # Windows
pip install -e photontorch

During development, use pytest to run the tests from within the root of the git-repository:

pytest tests

Documentation

Read the full documentation here: https://docs.photontorch.com

Dependencies

Required dependencies

  • Python 2.7 (Linux only) or 3.6+. It's recommended to use the Anaconda distribution.
  • pytorch>=1.5.0: conda install pytorch (see pytorch.org for more installation options for your CUDA version)
  • numpy: conda install numpy
  • scipy: conda install scipy

Optional (but recommended) dependencies

  • tqdm: conda install tqdm [progress bars]
  • networkx: conda install networkx [network visualization]
  • matplotlib: conda install matplotlib [visualization]
  • pytest: conda install pytest [to run tests]
  • pandoc: conda install pandoc [to generate docs]
  • sphinx: pip install sphinx nbsphinx [to generate docs]
  • torch-lfilter: pip install torch-lfilter [faster lfilter for detectors]

Reference

If you're using Photontorch in your work or feel in any way inspired by it, we ask you to cite us in your work:

Floris Laporte, Joni Dambre, and Peter Bienstman. "Highly parallel simulation and optimization of photonic circuits in time and frequency domain based on the deep-learning framework PyTorch." Scientific reports 9.1 (2019): 5918.

Known issues

  • Complex tensor support. Complex tensors are not supported in PyTorch/Photontorch. Wherever complex tensors would be applicable, Photontorch expects a real-valued tensor with the real and imag part stacked in the first dimension. The Photontorch issue can be followed here and the PyTorch issue here.
  • Sparse tensor support. A lot of memory usage can probably be avoided when transitioning to a sparse tensor representation for the connection matrices and scatter matrices. The Photontorch issue can be followed here

License

Photontorch used to be available under a custom Academic License, but Since October 2020, Photontorch is now fully open source and available under the AGPLv3.

Copyright © 2020, Floris Laporte - UGent - AGPLv3

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].