Skip to content

Numerical computation and Monte Carlo simulation of stroboscopic measurements of time.

License

Notifications You must be signed in to change notification settings

simoneroncallo/quantum-stroboscopy

Repository files navigation

Quantum stroboscopy

A Python package to perform Monte Carlo simulations for quantum stroboscopy, i.e. position measurements on multiple copies of the system at different times. It supports both ideal (projective) and non-instantaneous (POVM) setups. The latter is implemented through a sequence of Gaussian functions, each one representing a different time bin of the stroboscopic measurement. The simulation combines rejection sampling with inverse transform sampling: it first draw the ideal measurement results and pass them through the positive operator-valued measure (POVM).

arXiv

Contributors: Simone Roncallo @simoneroncallo
Reference: Seth Lloyd, Lorenzo Maccone, Lionel Martellini, Simone Roncallo “Quantum stroboscopy for time measurements” arXiv:2507.17740

Installation

The package can be downloaded and set up in a conda environment with

conda create --name arrival-env
conda activate quantum-stroboscopy
conda install --file requirements.txt

or containerized in Docker with

sudo docker build -t jupyter-qtime .
./runDocker.sh

Example

Consider a Gaussian wave packet with initial data

from strobo import get_gaussian
x0 = -4 # Position (t=0)
p = 3 # Momentum
std = 1 # Standard deviation (t=0)
mass = 1 # Mass
wave_packet = get_gaussian(x0, p, std, mass)

The stroboscopic measurement can be simulated as

from strobo import Stroboscopy, MonteCarlo
rng = np.random.default_rng(2025)
size = 10000 # Sample size
width = 0.35 # Width of each POVM component
strobo = Stroboscopy(numT, numX, intT[0], intT[1], intX[0], intX[1])
povm = MonteCarlo(idx, wave_packet, strobo, width, rng)
results = povm.get_samples(strobo, size)

with numT and numX the number of bins of the time and position intervals intT and intX, respectively. Here, idx labels the detector bin.

Structure

This repository has the following structure

strobo/
    ├── simulation.py # Monte Carlo simulation
    ├── stroboscopy.py # Stroboscopic setup
    └── visualize.py

example.ipynb # Example notebook
requirements.txt # Dependencies
runDocker.sh # Container

About

Numerical computation and Monte Carlo simulation of stroboscopic measurements of time.

Topics

Resources

License

Stars

Watchers

Forks