diff options
author | 2023-03-23 11:30:12 -0700 | |
---|---|---|
committer | 2023-03-23 11:30:12 -0700 | |
commit | 8f2a9da6e84056c33b64b80f14864160c1b61a48 (patch) | |
tree | ef5aa5e9e94587b437cf0a9064071da463b203bc | |
parent | f7b05278348b006aa8b54d58fb243b5536076918 (diff) | |
download | WarpX-8f2a9da6e84056c33b64b80f14864160c1b61a48.tar.gz WarpX-8f2a9da6e84056c33b64b80f14864160c1b61a48.tar.zst WarpX-8f2a9da6e84056c33b64b80f14864160c1b61a48.zip |
Fix typos and comments from #3708 (#3770)
-rw-r--r-- | Source/Particles/Collision/BinaryCollision/Coulomb/UpdateMomentumPerezElastic.H | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/Source/Particles/Collision/BinaryCollision/Coulomb/UpdateMomentumPerezElastic.H b/Source/Particles/Collision/BinaryCollision/Coulomb/UpdateMomentumPerezElastic.H index 4bbc6c93f..c29e38aee 100644 --- a/Source/Particles/Collision/BinaryCollision/Coulomb/UpdateMomentumPerezElastic.H +++ b/Source/Particles/Collision/BinaryCollision/Coulomb/UpdateMomentumPerezElastic.H @@ -77,13 +77,14 @@ void UpdateMomentumPerezElastic ( T_PR p1sz; if ( vcms > std::numeric_limits<T_PR>::min() ) { - /* lorentz_tansform_factor = ( (gc-1.0)/vcms*vcDv1 - gc )*m1*g1; - * Rewrite to avoid roundoff problems when gc is close to 1 */ - T_PR const lorentz_tansform_factor = + /* lorentz_transform_factor = ( (gc-1.0)/vcms*vcDv1 - gc )*m1*g1; + * Rewrite to avoid loss of precision from subtracting similar + * numbers when gc is close to 1 */ + T_PR const lorentz_transform_factor = ( (gc*gc*vcms*inv_c2/(T_PR(1.0) + gc))/vcms*vcDv1 - gc )*m1*g1; - p1sx = p1x + vcx*lorentz_tansform_factor; - p1sy = p1y + vcy*lorentz_tansform_factor; - p1sz = p1z + vcz*lorentz_tansform_factor; + p1sx = p1x + vcx*lorentz_transform_factor; + p1sy = p1y + vcy*lorentz_transform_factor; + p1sz = p1z + vcz*lorentz_transform_factor; } else // If vcms = 0, don't do Lorentz-transform. { @@ -228,7 +229,7 @@ void UpdateMomentumPerezElastic ( { T_PR const vcDp1fs = vcx*p1fsx + vcy*p1fsy + vcz*p1fsz; T_PR const vcDp2fs = vcx*p2fsx + vcy*p2fsy + vcz*p2fsz; - /* factor = (gc-1.0)/vcms; Rewrite to avoid roundoff problems when gc is close to 1 */ + /* factor = (gc-1.0)/vcms; Rewrite to avoid subtraction losing precision when gc is close to 1 */ T_PR const factor = gc*gc*inv_c2/(gc+T_PR(1.0)); T_PR const factor1 = factor*vcDp1fs + m1*g1s*gc; T_PR const factor2 = factor*vcDp2fs + m2*g2s*gc; |