WaveguideQED.jl
WaveguideQED.jl is a package for simulating continuous fockstates in waveguides. It expands on QuantumOptics.jl
by adding a custom basis and operators for efficiently representing time-binned photon states.
Dev docs
Added functionalities:
WaveguideBasis
for representing the waveguide Hilbert space and the related functions for generating states in this Hilbert space:zerophoton
,onephoton
, andtwophoton
. Also seeOnePhotonView
,TwoPhotonView
, andplot_twophoton!
for viewing the waveguide states and plotting them. Note thatWaveguideBasis
can contain multiple waveguides.WaveguideOperator
are specialized operators allowing efficient annihilation and creation operators at each time-bin in the waveguide. They are created by giving a basis toWaveguideQED.destroy
andWaveguideQED.create
- Since the interaction between the waveguide time-bin mode $k$ and cavity/emitter is given as: $a^\dagger w_k - a w_k^\dagger$ there are specially optimized functions for doing these operations called
CavityWaveguideOperator
which are created using a fockbasis and a waveguide basis and the functionsemission
andabsorption
. - (OBSOLETE. SEE Beamsplitter INSTEAD).
Detector
,LazyTensorKet
, andLazySumKet
, together withdetect_single_click
anddetect_double_click
allow one to do a beamsplitter interference and subsequent detection of photons coming from two waveguides.