| Summary: | Infinite loop in G4JTPolynomialSolver::FindRoots given degenerate coefficients | ||
|---|---|---|---|
| Product: | Geant4 | Reporter: | mstoeckl |
| Component: | geometry/solids | Assignee: | Evgueni.Tcherniaev |
| Status: | RESOLVED FIXED | ||
| Severity: | trivial | ||
| Priority: | P4 | ||
| Version: | 10.4 | ||
| Hardware: | All | ||
| OS: | All | ||
| Attachments: |
gdb backtrace
Modified G4Torus.cc |
||
|
Description
mstoeckl
2018-11-10 18:51:07 CET
Thank you for reporting the problem. Normally the DistanceToIn(p,v) method in a solid with curved surfaces should have a check on how far is a point p from the solid. If the point is too far, then it should be moved closer to the surface. It looks that G4Torus::DistanceToIn(p,v) does not have such a check. We will investigate and improve the code if it is the case. Created attachment 518 [details]
Modified G4Torus.cc
Could you try modified G4Torus.cc where missing check has been added. I believe that it should fix the problem.
A check "if point is too far" has been added into G4Torus::DistanceToIn(p,v). |