Changes between Version 8 and Version 9 of Density
- Timestamp:
- Oct 24, 2025, 4:34:45 PM (4 days ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Density
v8 v9 40 40 }}} 41 41 42 With this code, for each event of the file, you read the value `density` which contains the independent coefficients of the density matrix. The utility function `square_matrix` allows to write it in the usual matrix form needed for further analysis. 42 With this code, for each event of the file, you read the value `density` which contains the independent coefficients of the density matrix. The utility function `square_matrix` allows to write it in the usual matrix form needed for further analysis.\\ 43 For the rest of this page, we will use the same import names as in this block of code. 43 44 44 45 == Implementation of the quantum information obseravbles 45 46 Now that we have the density matrices for each event, we can compute any quantum information observable that we want. The library `Density_functions.py` contains a non-exaustive list of them that will be listed here and that can be called (example of the concurrence here) via. 46 47 {{{#!python 47 dens.Get_Concurrence(density)48 concurrence = dens.Get_Concurrence(square_density) 48 49 }}} 49 50 We will now give a list of the different quantum information observables currently available in the library. 50 51 For more physical and more detailed descriptions of the observables, read https://arxiv.org/abs/2510.17730. 51 52 52 === Purity 53 === Purity 54 Purity represents how mixed a quantum system is.\\ Available for all systems \\It can be computed with the following syntax: 55 {{{#!python 56 purity = dens.Get_Purity(square_density) 57 }}} 58 Normalised purity (which only differs in the normalisation factor) can be computed with the following syntax: 59 {{{#!python 60 purity_normalised = dens.Get_Normalised_Purity(square_density) 61 }}} 53 62 54 63 === Concurrence 64 Concurrence is an entanglement marker. Concurrence = 0 means the system is separable, and if Concurrence > 0, the bigger it is the more entangled is the system.\\ 65 Available for qubit-qubit (2 x 2) systems only.\\ 66 It can be computed with the following syntax: 67 {{{#!python 68 concurrence = dens.Get_Concurrence(square_density) 69 }}} 70 71 For the qutrit-qutrit (3 x 3) system, lower and upper bounds (the square of these bounds are computed more precisely) are known and be computer with the following syntax: 72 {{{#!python 73 lower_bound_concurrence_squared = dens.ConcLB2(square_density, pdg_pos) 74 upper_bound_concurrence_squared = dens.ConcUB2(square_density, pdg_pos) 75 }}} 76 Note that `pdg_pos` is a the list of the `PDG` codes of the particles in the density matrix. If you study a system W^+^ W^-^, we would have `pdg_pos = [24, -24]` 77 55 78 56 79 === Bell test 80 For the case of qubit-qubit systems, the Bell inequality is very simple to compute.\\ 81 Available for qubit-qubit (2 x 2) systems only.\\ 82 It can be computed with the following syntax: 83 {{{#!python 84 bell_test, flag_test = dens.Get_Bell_Test(CTC) 85 }}} 86 where `CTC` is the product of the transposed spin correlation matrix with the spin correlation matrix and `flag_test` is a boolean being `True` if `\lambda_1 + \lambda_2 > 1`. 57 87 58 88 === D coefficients 89 The D coefficients are conditions for entanglement that are commonly used for the process `p p > t t~`. They are useful to determinate which singlet/triplet state corresponds to a region of high entanglement.\\ 90 Available for qubit-qubit (2 x 2) systems with zero average polarisation.\\ 91 They can be computed with the following syntax: 92 {{{#!python 93 D1, Dn, Dr, Dk, boolD = dens.Get_Dcoef(C) 94 }}} 95 where `C` is the spin-correlation matrix and `D1, Dn, Dr, Dk` are the D coefficients and `boolD` is `True` if the system shows entanglement. 59 96 60 97 === Entanglement of formation 98 Entanglement of formation is an entanglement marker that has interesting interpretations in term of von Neumann entropy. 99 Available for qubit-qubit (2 x 2) systems.\\ 100 They can be computed with the following syntax: 101 {{{#!python 102 Ef = dens.Get_Entanglement_Formation(square_density) 103 }}} 61 104 62 105 === Magic 106 Magic is not an entanglement marker, it quantifies another purely quantum feature of a quantum state: the "non-stabiliserness". \\ 107 Available for qubit-qubit (2 x 2) systems.\\ 108 They can be computed with the following syntax: 109 {{{#!python 110 Magic = dens.Magic_Mixed(square_density, n) 111 }}} 112 where `n` is the number of particles in the density matrix, this has only been tested for `n = 2`. 63 113 64 114 === Negativity 115 Negativity is an entanglement marker based on measuring how negative are the eigenvalues of the partially transposed density matrix. It is based on the Peres-Horodecki criterion which is necessary and sufficient for qubit-qubit (2 x 2) and qubit-qutrit (2 x 3) systems only. Like purity there are two common normalisations, negativity and logarithmic negativity.\\ 116 Computable for every system but interpretation available only for qubit-qubit (2 x 2) and qubit-qutrit (2 x 3) systems.\\ 117 It can be computed with the following syntax: 118 {{{#!python 119 Negativity, LogNegativity = dens.Negativity(square_density, pdg_pos) 120 }}} 121 where `pdg_pos` is the list of the `PDG` codes in the density matrix. 65 122 66 123 === Mana 124 Mana is an approximation of magic in systems for which magic is not defined.\\ 125 Computable for d x d (d odd) systems like qutrit-qutrit (3 x 3).\\ 126 It can be computed with the following syntax: 127 {{{#!python 128 Mana = dens.Get_Mana(square_density, d1, d2) 129 }}} 130 where `d1` and `d2` are the dimensions of the Hilbert space on which each of the two particles in the density matrix are defined. Usually we have `d1 = 3 = d2`. 67 131 68 132 === Peres-Horodecki criterion 133 The Peres-Horodecki critetion is the main theorem we have to determine if a system is separable or entangled. The criterion is necessary but not sufficient for all systems and necessary and sufficient for 2 x 2 and 2 x 3 systems. It tells in these cases that: if any of the eigenvalues of the partially transposed density matrix are negative, then the system is entangled.\\ 134 What we compute is the list of the eigenvalues of the partially transposed density matrix.\\ 135 It can be computed with the following syntax: 136 {{{#!python 137 flag_entanglement, eigvals = dens.PeresHorodecki_criterion(square_density, pdg_code) 138 }}} 139 where `flag_entanglement` is `True` if the system is entangled and `eigvals` are the eigenvalues. 69 140 70 === Trace distance 141 === Trace and fidelity distance 142 To compare two different density matrices (from different models, different parameters, different processes, etc.) we can compute "distances". Their interpretation is that the distance is zero if the two matrices represent the same physical process and the distance grows as the matrices get more and more different. We have two computable distances, the trace distance and the fidelity distance.\\ 143 They can be computed for any system with the following syntax: 144 {{{#!python 145 trace_distance = dens.trace_distance(square_matrix1, square_matrix2) 146 fidelity_distance = dens.Fidelity_distance(square_matrix1, square_matrix2) 147 }}} 71 148 72 === Fidelity distance73
