SmileiPIC / Smilei

Particle-in-cell code for plasma simulation
https://smileipic.github.io/Smilei
337 stars 118 forks source link

Relative Velocity in Nuclear Reaction #527

Closed christianbild closed 2 years ago

christianbild commented 2 years ago

I have a question regarding the relative velocity in the function one_collision in the file collisions.h. Line 161 reads

double vrel = p_COM/term3/term4; // relative velocity

As far as I can tell there is a factor of m1 missing in the denominator, following the paper of Perez2012. But even more important, equation 8 in Perez paper does not seem to agree with the usual definition of the relative velocity. In other sources, e. g. Landau Lifschitz, the relative velocity is defined as the velocity of particle 2 in the restframe of particle 1. This does not agree with the sum of the velocities in the center of mass frame. In my opinion, the definition which needed to be used at this point in the code is the one of Landau Lifschitz. I would suggest ether to use the formula from Landau Lifschitz directly:

v_rel=Sqrt(1-1/(U1_iU2^i)^2)

where (U1_iU2^i) is the minkowski scalar product of both four velocities. Or alternatively one could only change Perez formula minimally to obtain: v_rel=(m1g1+m2g2)pc/(gc p1^i p2_i) where p1^i p2_i is the minkowski scalar product of both four momenta. Both formulas are equivalent. Thank you for clarifying the situation.

mccoys commented 2 years ago

Concerning the first formula, m_1 is included already as the symbol p in smilei is actually momentum divided by m c^2.

Concerning vrel, I don't have the Landau-Lifschitz book right now, but I think the vrel as you state it is the one in the reference frame of one particle when we want to evaluate the expression N = sigma vrel n Delta t. This is the number of collisions for 1 particle in a plasma at rest. In this case you are correct. But in the following calculations, there is a change of frame, and the vrel is used in the COM frame. This is why, I believe, the other formula is used. I may be wrong though.

Final note: colleagues and myself are working on nuclear reactions and other processes these days. The work has started in this fork https://github.com/mccoys/Smilei/. If you are interested in developing for collisions or other processes, it would be good to use that fork and be coordinated.

mccoys commented 2 years ago

@christianbild I think my explanation for vrel is correct. Do you agree? Or is there some misunderstanding?

christianbild commented 2 years ago

Sorry for not answering earlier. Regarding m_1 you are correct and I made a mistake, I missed that p_COM is p1*/m1 from Perez.

Regarding the second point, Laundau Lifschitz is available free online, e. g. here

The relative velocity v1-v2 between to particles is not a Lorentz invariant quantity. The numbers of collisions N = sigma vrel n Delta t of the other hand is an invariant. For that reason vrel has to be taken in some specific reference frame. This is the rest frame of one of the two particles. In Perez paper the relative velocity in the center of mass frame is given. Even so there is a coordinate change into this frame, for the number of collision should be calculated with the vrel out of the rest frame and not the center of mass frame in my opinion.

One possible argument could be that the number of collisions should not depend on the masses of both particles. So by varying the masses the number of collisions should not change. But vrel in the center of mass frame actually changes, since the center of mass frame changes by varying the masses.

mccoys commented 2 years ago

I do not understand your point. The N is calculated in the COM frame because the cross section is known in that frame. Consequently the vrel must be calculated in the same frame

christianbild commented 2 years ago

I will provide more arguments later, probably next week.

christianbild commented 2 years ago

Sorry for the delay, I have investigated the issue in more detail now. In Perez' paper the number of collisions (equation 5) is N=sigma vrel gamma1 gamma2/(gamma1 gamma2)n_2 dt I have checked that the formula agrees with Landau Lifshitz. The ratio of the gammas is important, if one wants to use vrel*. For your formula from above N = sigma vrel n Delta t one needs to use the definition of Landau Lifshitz for vrel. As far as I can tell, in the code the ratio of the gammas is missing. I think either the gamma ratio must be added or the other formula for vrel must be used. If you are interested I can send you my calculations. I hope this helps.

mccoys commented 2 years ago

The code definitely includes the ratio of gammas. It is calculated in the paper you cite and gives the formula for s that is calculated in the code

mccoys commented 2 years ago

Ah I think I understand what you mean. You refer specifically to nuclear reactions, right? I was looking at formulae for collisions.

In that case we are indeed missing the ratio of gammas. Note that this ratio may become important only at GeV energies or above, where the cross section for DD reactions is very low. We should fix it nonetheless.

mccoys commented 2 years ago

I have fixed this point, along with a bunch of refactoring in the collisions that I was working on.