|
Code for: The Influence of Experimental Imperfections on Photonic GHZ State Generation
|
Defines the function used for the simulation of GHZ state generation with imperfections. More...
Functions | |
| template<class K , class V , class R > | |
| void | cleanOvlGHZ (State< K, V, R > &S, int a) |
| Cleans input such that only the keys with the same DMode in one of the parts of the GHZ state remain. | |
| void | fid (const std::vector< std::array< State< Key< int >, float, float >, 8 > > &PreData, const std::vector< std::array< State< Key< int >, float, float >, 8 > > &Compl, const float &ovl, const std::vector< float > &angErrs, const std::vector< int > &doublePrep, const std::vector< int > &lossPos, const std::string &path, int rank) |
| Computes the fidelity for pre-computed data and writes it to a file. | |
| template<class K , class V , class R > | |
| void | circuitFid (State< K, V, R > &S, const std::vector< int > &lossPos, const std::array< std::vector< V >, 15 > &apl) |
| The photonic circuit we considered to create a GHZ state. | |
| void | fidsim (const std::vector< float > &ovls, const std::vector< int > &doublePrep, const std::vector< int > &lossPos, const std::vector< float > &angErrs, const std::array< std::vector< float >, 15 > &apl, const std::string &path, int rank) |
| Computes the fidelity for a given parameters. | |
| void | schedulerGHZshuffled (const std::vector< float > &ovls, std::vector< float > &angErrs, std::string path, int global_lower, int global_upper, int rank_off, int rank, int size, std::string shuffle_path) |
| This function iterates over most likely 10214 combinations of loss and two-photon creation and saves the fidelity and the probailities for all of them. | |
Defines the function used for the simulation of GHZ state generation with imperfections.
|
inline |
|
inline |
|
inline |
Computes the fidelity for pre-computed data and writes it to a file.
| PreData | Vector of Arrays (one for every input combination of DModes) of the remaining states after the measurement already projected onto the spatial and polarization modes of the GHZ state |
| Compl | Same data structure as PreData. These contains the complement of the states after the measurement, i.e. those parts orthogonal to the GHZ state. |
| ovl | Pairwise overlap |
| angErrs | Angle errors in the setup |
| doublePrep | Events/positions of double-preparation |
| lossPos | Events/positions of loss |
| path | The path to the folder where the data should be saves. |
| rank | The rank of the current process. Used for saving the data to the file. |
| void fidsim | ( | const std::vector< float > & | ovls, |
| const std::vector< int > & | doublePrep, | ||
| const std::vector< int > & | lossPos, | ||
| const std::vector< float > & | angErrs, | ||
| const std::array< std::vector< float >, 15 > & | apl, | ||
| const std::string & | path, | ||
| int | rank ) |
Computes the fidelity for a given parameters.
| ovls | Overlaps, for all of them the fidelity is computed |
| doublePrep | Spatial modes with two-photon preparation |
| lossPos | Positions where loss happens |
| angErrs | Rotation-errors for wave-plates |
| apl | Rotations as unitaries repr. as single line unitaries (already including the rotation errors) |
| path | Pathsuffix where to save the outcome |
| rank | Rank of the process (used for saving the outcome) |
| void schedulerGHZshuffled | ( | const std::vector< float > & | ovls, |
| std::vector< float > & | angErrs, | ||
| std::string | path, | ||
| int | global_lower, | ||
| int | global_upper, | ||
| int | rank_off, | ||
| int | rank, | ||
| int | size, | ||
| std::string | shuffle_path ) |
This function iterates over most likely 10214 combinations of loss and two-photon creation and saves the fidelity and the probailities for all of them.
| ovls | Overlaps, for all of them the fidelity is computed |
| angErrs | Rotation-errors for wave-plates |
| path | Pathsuffix where to save the outcome |
| global_lower | Lower end of the intervall, between 0 and 10214 |
| global_upper | Upper end of the intervall, between 0 and 10214 |
| rank_off | Offset for the rank, which is used for saving the result |
| rank | Rank of the process (used for saving the outcome) |
| size | Number of processes |
| shuffle_path | Path to a file where all 10214 combinations are shuffeled |