-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Symbolic Objects for Local and Remote entanglement generation processes #45
Conversation
Codecov Report
@@ Coverage Diff @@
## master #45 +/- ##
==========================================
- Coverage 64.00% 63.29% -0.71%
==========================================
Files 23 27 +4
Lines 975 1079 +104
==========================================
+ Hits 624 683 +59
- Misses 351 396 +45
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
May we reorganize things a bit. Could you make two folders inside of the newly created StatesZoo folder, one for each of the two new objects. And then keep the matlab code for each in the corresponding folder. Let's also have a name that describes a bit more the "why" not the "what". |
something like
Keep in mind that these two things are very different types of processes and states, they should not be lumped together. Also, keep the express statements local, do not put them in a completely different file (when you write them -- I thought they are implemented already, but I misread something). |
We need to figure out how to name these objects. For the cascaded source, Saikat and Dirk refer to it as "ZALM source" for Zero-added-noise Multiplexed. It comes from https://arxiv.org/abs/2206.03670 and https://arxiv.org/abs/2206.03670 When you set up its doc string, please leave in The best way to get up-to-date bibtex references is from google scholar. |
For the midswap folder, let's have two separate symbolic objects defined there. Maybe for names we can use |
In terms of how to do the symbolics, check out this file and how "SpecialKet" is done there https://github.com/QuantumSavory/QuantumSymbolics.jl/blob/main/src/QSymbolicsBase/predefined.jl The issue is that we do not really have the same for density matrices. I think a good way to do this is to make |
The Also, in the above comment the part
was not clear, so for now I did Then, I was not sure if we need the const |
## Overview | ||
This folder contains the functions required to generate the spin-spin density matrix for a cascaded source swapped with emissive memories. The functions are written in MATLAB. The functions are: | ||
- cascaded_source_photonic.m : Generates the photonic density matrix for a cascaded source from the papers Refs. 1 and 2. | ||
- cascaded_source_spin.m : Generates the spin-spin density matrix for a cascaded source swapped with emissive spin memories from the papers Ref. 3. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Abhishek-1Bhatt , can you confirm that we currently just implement cascaded_source_spin.m
- the photinic
and basis
files might be used in the future, but are not currently used in any symbolic objects, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, the function for photonic
density matrix has been translated to Julia, but there is no symbolic object for it right now. Same with the basis
, I have declared it as a const
in the module file StatesZoo.jl
but its not used anywhere.
src/StatesZoo/StatesZoo.jl
Outdated
using QuantumSymbolics: withmetadata, @withmetadata, Metadata | ||
import QuantumSymbolics: express_nolookup | ||
|
||
export cascaded_source_photonic, cascaded_source_spin, midswap_dual_rail, midswap_single_rail, ZALMpair |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
let's export only the symbolic objects (the structs), nothing else
|
||
## Reference | ||
1. [P. Dhara, S. J. Johnson, C. N. Gagatsos, P. G. Kwiat, S. Guha, Heralded Multiplexed High-Efficiency Cascaded Source of Dual-Rail Entangled Photon Pairs Using Spontaneous Parametric Down-Conversion. Phys. Rev. Appl. 17, 034071 (2022).](https://arxiv.org/abs/2107.14360) | ||
2. [K. C. Chen, et al., Zero-Added-Loss Entangled-Photon Multiplexing for Ground- and Space-Based Quantum Networks. Phys. Rev. Appl. 19, 054029 (2023).](https://arxiv.org/abs/2206.03670) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reference 1 and 2 also matter. In ZALMPair
we should say something along the lines "cascaded source (from 1 and 2) that is then stored in spin memories (from 3)". Could you update the references to include 1 and 2?
src/StatesZoo/zalm_pair/zalm_pair.jl
Outdated
|
||
""" | ||
Generate symbolic object for the spin-spin density matrix for a | ||
cascaded source swapped with emissive spin memories from the paper [prajit2023entangling](@cite) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here is where I am suggestion we also mention ref 1 and 2
src/StatesZoo/zalm_pair/zalm_pair.jl
Outdated
Generate symbolic object for the spin-spin density matrix for a | ||
cascaded source swapped with emissive spin memories from the paper [prajit2023entangling](@cite) | ||
""" | ||
@withmetadata struct ZALMpair <: AbstractTwoQubitState |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To distinguish from the photonic one, let's call it ZALMSpinPair
cascaded source swapped with emissive spin memories from the paper [prajit2023entangling](@cite) | ||
""" | ||
@withmetadata struct ZALMpair <: AbstractTwoQubitState | ||
Ns::Float64 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you document what each of these parameters means? Prajit has that explained in his readmes -- basically just copy that, for all symbolic structs.
could you add a few tests, something along the lines of:
just to make sure that the API is not broken |
No description provided.