Create a board for photons. Mostly for internal use.
Vector with [x1, y1, dir1, pol1, ..., xn, yn, dirn, poln].
Alias of vector
The total number of photons.
Frame vector norm squared
Size x ('width') of the board.
Size y ('height') of the board.
Act on single photons with the precomputed globalOperator.
Itself, for chaining.
Add one more photon to the state, using Photons.vectorFromIndicator.
Position of the photon, x.
Position of the photon, y.
Direction from ['>', '^', '<', 'v].
Polarization from ['H', 'V', 'D', 'A', 'L', 'R'].
Itself, for chaining.
Combine H and V polarization, to Right now kind od dirty, but should work
Angles 0-360, starting from --> and moving counterclockwise |psi> = (are + i aim) |H> + (bre + i bim) |V>
A deep copy of the same object.
Generates a string for kets. See Vector.toString for formatting options.
.
Float precision.
A ket string, e.g. (0.71 +0.00i) |3,1,>,V⟩ + (0.00 +0.71i) |2,2,v,V⟩.
Measure the absolute absorbtion on a given tile.
Operator, assumed to be with dimensions [pol, dir].
Probability lost at tile (x, y) after applying the operator. Does not change the photon object.
Normalize
Itself, for chaining.
Propagate all particles, hardcoded. See propagatePhotonsWithOperator for a reference.
Itself, for chaining.
Propagate all particles, using {@link createPhotonPropagator}.
Itself, for chaining.
Shows probability of photons.
Dimension indices for particle i, for [posX, posY, dir, pol].
Photon id, from [0, ..., nPhotons - 1]
E.g. for 1: [4, 5, 6, 7]
Dimension indices for particle i, for [posX, posY, dir].
Photon id, from [0, ..., nPhotons - 1]
E.g. for 1: [4, 5, 6]
Dimension indices for particle i, for [posX, posY].
Photon id, from [0, ..., nPhotons - 1]
E.g. for 1: [4, 5]
Demo of measurement of one particle So far the basis is FIXED, so it won't give corrent results with operators absorbing in a basis that does not commute with this basis. Vide measureAbsorptionAtOperator as the structure is
Only measurement (zeros excluded). Conditional state is NOT normalized (to avoid issues with division by ) FIXME: No return type
Create an operator for a particular place, projecting only on the particular position.
Board size, x.
Board size, y.
Operator, assumed to be with dimensions [pol, dir].
An operator [dimX, dimY, pol, dir].
Create a propagator, given the board size.
Board size, x.
Board size, y.
An operator, with dimensions [dimX, dimY, {@link Dimension.direction()}].
Turn an list of operators in a complete one-photon iteraction operator for the board.
Board size, x.
Board size, y.
A list of [x, y, operator with [dir, pol]].
Turn an list of operators in a complete one-photon iteraction operator for the board (U - Id).
Board size, x.
Board size, y.
A list of [x, y, operator with [dir, pol]].
Create a single photon vector.
Board size, x.
Board size, y.
Position of the photon, x.
Position of the photon, y.
Polarization from ['H', 'V', 'D', 'A', 'L', 'R'].
A vector [dimX, DimY, dir, pol], does not modify the object.
Generated using TypeDoc
Frame class
Merge between Photons and QuantumFrame from QG2
Think about how to pass the operators in a better way