Source

>>> import perceval as pcvl
>>> source = pcvl.Source(emission_probability=0.3, multiphoton_component=0.05)
>>> pcvl.pdisplay(source.probability_distribution())

state

probability

|0>

7/10

|{_:0}>

0.297716

|{_:0}{_:2}>

0.002284

class perceval.components.source.Source(emission_probability=1, multiphoton_component=0, indistinguishability=1, losses=0, multiphoton_model='distinguishable', context=None)

Definition of a source We build on a phenomenological model first introduced in ref. [1] where an imperfect quantum-dot based single-photon source is modeled by a statistical mixture of Fock states. The model developed here, first introduced in ref. [2], constructs the input multi-photon state using features specific to Perceval. [1] Pont, Mathias, et al. Physical Review X 12, 031033 (2022). https://doi.org/10.1103/PhysRevX.12.031033 [2] Pont, Mathias, et al. arXiv preprint arXiv:2211.15626 (2022). https://doi.org/10.48550/arXiv.2211.15626

Parameters:
  • emission_probability (float) – probability that the source emits at least one photon

  • multiphoton_component (float) – second order intensity autocorrelation at zero time delay \(g^{(2)}(0)\)

  • indistinguishability (float) – 2-photon mean wavepacket overlap

  • losses (float) – optical losses

  • multiphoton_model (str) – distinguishable if additional photons are distinguishable, indistinguishable otherwise

  • context (Optional[Dict]) – gives a local context for source specific features, like discernability_tag

generate_distribution(expected_input)

Simulates plugging the photonic source on certain modes and turning it on. Computes the input probability distribution

Parameters:

expected_input (FockState) – Expected input BasicState

The properties of the source will alter the input state. A perfect source always delivers the expected state as an input. Imperfect ones won’t.

probability_distribution(nphotons=1)

returns SVDistribution on 1 mode associated to the source

Parameters:

nphotons (int) – Require nphotons in the mode (default 1).

Return type:

SVDistribution