For long range forces, the number of scatterings is huge and can reduce the speed below very tiny numbers, which can then cause segmentation faults in Layer::MFP(double vDM).
Showing 2 of 2 files from the diff.
src/Trajectory_Simulation.cpp
changed.
src/main.cpp
changed.
@@ -511,7 +511,8 @@
Loading
511 | 511 | result.weight*=Weight_Angle; |
|
512 | 512 | result.nScattering++; |
|
513 | 513 | //Check if we fall below the speed cutoff |
|
514 | - | if(event.Speed()<vMin) |
|
514 | + | double speed= event.Speed(); |
|
515 | + | if(speed<vMin || speed <1.0e-20) |
|
515 | 516 | { |
|
516 | 517 | simulate = false; |
|
517 | 518 | result.final_event=event; |
@@ -79,7 +79,7 @@
Loading
79 | 79 | int GIS_Domains=1; |
|
80 | 80 | if(GIS) |
|
81 | 81 | { |
|
82 | - | GIS_Domains = std::min(3,Importance_Domains(DM,Analytic_vMean,vMin_pdf,GIS_Kappa,Layers)); |
|
82 | + | GIS_Domains = std::min(10,Importance_Domains(DM,Analytic_vMean,vMin_pdf,GIS_Kappa,Layers)); |
|
83 | 83 | Compute_Importance_Boundaries(DM,Analytic_vMean,GIS_Domains,GIS_Splits,Layers); |
|
84 | 84 | } |
|
85 | 85 | //Pre-simulation output. |
18.2
TRAVIS_OS_NAME=linux
18.1
TRAVIS_OS_NAME=linux
19.2
TRAVIS_OS_NAME=linux
19.1
TRAVIS_OS_NAME=linux
Sunburst
The inner-most circle is the entire project, moving away from the center are folders then, finally, a single file.
The size and color of each slice is representing the number of statements and the coverage, respectively.
Icicle
The top section represents the entire project. Proceeding with folders and finally individual files.
The size and color of each slice is representing the number of statements and the coverage, respectively.