This repo contains the official implementation of the paper:
(If you use the code, please cite our paper.) We have introduced an algorithm for solving the inverse design problem of generating structured and entangled photon pairs in quantum optics, using tailored nonlinear interactions in the SPDC process. The SPDCinv algorithm extracts the optimal physical parameters which yield a desired quantum state or correlations between structured photon-pairs, that can then be used in future experiments. To ensure convergence to realizable results and to improve the predictive accuracy, our algorithm obeyed physical constraints through the integration of the time-unfolded propagation dynamics governing the interaction of the SPDC Hamiltonian.
We have shown how we can apply our algorithm to obtain the optimal nonlinear
This work can readily be extended to the spectral-temporal domain, by allowing non-periodic volume holograms along the propagation axis -- making it possible to shape the joint spectral amplitude of the photon pairs. Furthermore, one can easily adopt our approach for other optical systems, such as: nonlinear waveguides and resonators,
To understand and determine the variables of interaction and learning hyperparameters, see src/spdc_inv/experiments/experiment.py
and read the documentation there (we will go into more detail here soon.)
Before you run the code, please run the following line from the bash:
export PYTHONPATH="${PYTHONPATH}:/home/jupyter/src"
Later, run experiment.py by:
python src/spdc_inv/experiments/experiment.py