Note: this file is an early design document, but might be updated as the version goes up.
This article walks step by step through simulating a single round of emitting a photon, looking at the data structures required. This article assumes actions are already programmed using a RuleSet, for the simplest link operation of just creating a Bell pair.
- Based on schedule determined by required arrival time at BSA, schedule following actions.
- Just before firing, initialize qubit
- Fire photon, schedule BSA event. Photon must be accompanied by (or incorporate) info about what stationary qubit it's entangled with.
- When BSA event occurs:
- Calculate probability of clicks occurring, using channel loss and BSA parameters, incorporating dark count.
- If successful, calculate error probability and type.
- Transform individual qubit states into a shared QuantumState, including recalculating fidelity/errors and resetting time since that calculation was done.
- Send ACK/NAK message to both partners, schedule arrival events.
- When ACK/NAK msg event occurs:
- Update local statistics for both link performance and tracking the state.
- Invoke appropriate RuleEngine routine. (Global fidelity/state will be updated again at the next gate performed at either node.)
The resulting Bell pair may be used either in tomography, or for application use. After the link bootstrap phase, the link is placed in operational mode, during which this choice is determined cryptographically based on some agreed-upon method.
Add discussion of how we track states here.
PR: Physical Reality (at least as simulated)
RK: What the Repeater Knows (its tracking of state)