-
Notifications
You must be signed in to change notification settings - Fork 3
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
Report error in the trace of particle density matrices #40
Comments
I think there will be a problem when the error in Tr(rho) is comparable to the flavor vector length of rho, rather than when Tr(rho) is comparable to the flavor vector length of rho. |
Ah, got it, that's simpler to calculate :) |
So that would just be |
Yes, that's right. There is also the error in the length, so |
The realtime_reduced_data branch reports a sum of Tr(rho) over the entire domain. Initially it is equal to the number of particles and should remain so throughout the calculation. |
We can report the L2 and max norm of the error in the trace of the particles' density matrices.
Currently, for each particle the flavor vector length L is calculated from
N_ab
, the matrix storing the number of neutrinos in each state. We also have the particle weightN_p
which is just the number of neutrinos in each particle.Error in
Tr(rho) = 1
can significantly affect the number of neutrinos that transform ifL ~ N_p
, since the size of L controls the maximum amount of flavor transformation. We can define an errorE = |L(rho) * N_p - L_0|
whereL_0
is the initial length stored in the particles andL(rho) * N_p
is the flavor vector length calculated from rho, scaled by the particle weight. Then take the L2 and max norms of E by computingEp^2
for each particle and depositing it onto the grid E, then use sum and max to get L2 and max norms on the grid.We can then add an input parameter for the error reporting frequency, like
report_error_every
.The idea is that this will tell us when our simulations would benefit from symbolically making the assumption that
Tr(rho_ab) = 1 => Tr(N_ab) = N_p
, eliminating one of the diagonal components algebraically, and evolving a traceless matrixN_ab_p
for particles.The text was updated successfully, but these errors were encountered: