diff options
author | 2019-11-24 13:53:41 -0700 | |
---|---|---|
committer | 2019-11-24 13:53:41 -0700 | |
commit | e859fcf3ee3ddb9efbb8e49c09852bb9c9fa32c7 (patch) | |
tree | bcea264fd3840b070dbded9cc883ed750c96f903 /Source/Particles/Collision | |
parent | a9b158c647a20d030c98c18636d8bdb81d6dda35 (diff) | |
download | WarpX-e859fcf3ee3ddb9efbb8e49c09852bb9c9fa32c7.tar.gz WarpX-e859fcf3ee3ddb9efbb8e49c09852bb9c9fa32c7.tar.zst WarpX-e859fcf3ee3ddb9efbb8e49c09852bb9c9fa32c7.zip |
Modifed UpdateMomentumPerezElastic.H again.ls
Diffstat (limited to 'Source/Particles/Collision')
-rw-r--r-- | Source/Particles/Collision/UpdateMomentumPerezElastic.H | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/Source/Particles/Collision/UpdateMomentumPerezElastic.H b/Source/Particles/Collision/UpdateMomentumPerezElastic.H index 2a3b0f847..c66edd655 100644 --- a/Source/Particles/Collision/UpdateMomentumPerezElastic.H +++ b/Source/Particles/Collision/UpdateMomentumPerezElastic.H @@ -103,9 +103,17 @@ void UpdateMomentumPerezElastic ( // Compute scattering angle T_R cosXs; T_R sinXs; - if ( s <= 0.01 ) - { cosXs = 1. + s * std::log(buf1); } - else if ( s > 0.01 && s <= 3. ) + if ( s <= 0.1 ) + { + while ( true ) + { + cosXs = 1. + s * std::log(buf1); + // avoid the bug when buf1 is too small + if ( cosXs >= -1.0 ) { break; } + buf1 = amrex::Random(); + } + } + else if ( s > 0.1 && s <= 3. ) { // buf2 is A inverse buf2 = 0.0056958 + 0.9560202*s - 0.508139*s*s + |