Archived issue #0029910
Porting to Debian80-64 : Regressions in Modeling Algorithms
Description
Source: http://jenkins-test-12.nnov.opencascade.com/view/JT-12/
Test cases:
bugs modalg_7 bug28119_1
bugs modalg_7 bug28131
Station : debian8-03
Test cases:
bugs modalg_7 bug28119_1
bugs modalg_7 bug28131
Station : debian8-03
Public activity
35 archived notes
Participants are labeled by their role within this record.
Dear Nikolay, this bug shows instability related to different compiler. Could you trace the difference to understand the root of the problem?
Branch [archived branch] has been created by Participant.
[revision removed]
Detailed log of new commits:
Author: nbv
Date: Mon Jul 16 15:32:23 2018 +0300
0029910: Porting to Debian80-64 : Regressions in Modeling Algorithms
The algorithm of choice of isoline (while surface-surface intersecting) has become more platform independent.
[revision removed]
Detailed log of new commits:
Author: nbv
Date: Mon Jul 16 15:32:23 2018 +0300
0029910: Porting to Debian80-64 : Regressions in Modeling Algorithms
The algorithm of choice of isoline (while surface-surface intersecting) has become more platform independent.
bugs modalg_7 bug28119_1 regression is disappears
http://occt-tests/JT-12-WEEK29-OCCT/Debian80-64/summary.html
http://occt-tests/JT-12-WEEK29-OCCT/Debian80-64/summary.html
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: nbv
Date: Wed Jul 25 13:49:57 2018 +0300
Temporary commit
[revision removed]
Detailed log of new commits:
Author: nbv
Date: Wed Jul 25 13:49:57 2018 +0300
Temporary commit
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
DC,
Test "bugs modalg_7 bug28131" is stable on all platforms.
Making the test "bugs modalg_7 bug28119_1" stable requires serious development. The main problem is in intersection algorithm. Namely in the function IntImp_ComputeTangence(...) (see src/IntImp/Attachment 1 (CXX) file). This function is responsible for choosing isoline, along which the WLine will go. And this algorithm is really unstable in cases when two surfaces are almost tangent. It means that by the reason of numerical instability WLine can go in significantly different direction (see the message ~77421).
All attempts to make choice of direction more platform independent (by entering some tolerance, what were made in many fixes) led to additional regressions. I.e. in the places where WLIne shall curve, after the fix it continuous its direction.
I have attached the new version of the file Attachment 1 (CXX). There, the algorithm of iso-line choosing has been rewritten and (in my opinion) is more logical. However, currently it cannot be implemented because it requires rewriting IntWalk_PWalking algorithm completely. Namely, redefinition of minimal and maximal step of WLine, maximal deflection, angle of WLine rotation and many other criteria; revision of all statuses (enumerated in IntWalk_StatusDeflection.hxx file). Maybe, returning to this question will be possible after the fix #23914.
Conclusion!
Currently it is better to mark the test "bugs modalg_7 bug28119_1" as really unstable. Maybe in the future this instability will be fixed by some changes in fillet algorithm but here I repeat that the main reason of the current instability is in intersection algorithm and its fixing requires serious development.
Test "bugs modalg_7 bug28131" is stable on all platforms.
Making the test "bugs modalg_7 bug28119_1" stable requires serious development. The main problem is in intersection algorithm. Namely in the function IntImp_ComputeTangence(...) (see src/IntImp/Attachment 1 (CXX) file). This function is responsible for choosing isoline, along which the WLine will go. And this algorithm is really unstable in cases when two surfaces are almost tangent. It means that by the reason of numerical instability WLine can go in significantly different direction (see the message ~77421).
All attempts to make choice of direction more platform independent (by entering some tolerance, what were made in many fixes) led to additional regressions. I.e. in the places where WLIne shall curve, after the fix it continuous its direction.
I have attached the new version of the file Attachment 1 (CXX). There, the algorithm of iso-line choosing has been rewritten and (in my opinion) is more logical. However, currently it cannot be implemented because it requires rewriting IntWalk_PWalking algorithm completely. Namely, redefinition of minimal and maximal step of WLine, maximal deflection, angle of WLine rotation and many other criteria; revision of all statuses (enumerated in IntWalk_StatusDeflection.hxx file). Maybe, returning to this question will be possible after the fix #23914.
Conclusion!
Currently it is better to mark the test "bugs modalg_7 bug28119_1" as really unstable. Maybe in the future this instability will be fixed by some changes in fillet algorithm but here I repeat that the main reason of the current instability is in intersection algorithm and its fixing requires serious development.
Branch [archived branch] has been created by Participant.
[revision removed]
Detailed log of new commits:
Author: nbv
Date: Mon Jul 16 15:32:23 2018 +0300
0029910: Porting to Debian80-64 : Regressions in Modeling Algorithms
Adjusting test cases.
Creation of new test cases.
[revision removed]
Detailed log of new commits:
Author: nbv
Date: Mon Jul 16 15:32:23 2018 +0300
0029910: Porting to Debian80-64 : Regressions in Modeling Algorithms
Adjusting test cases.
Creation of new test cases.
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: nbv
Date: Fri Aug 3 13:32:32 2018 +0300
Adjusting test cases.
[revision removed]
Detailed log of new commits:
Author: nbv
Date: Fri Aug 3 13:32:32 2018 +0300
Adjusting test cases.
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: nbv
Date: Fri Aug 3 14:58:26 2018 +0300
# Adjusting test cases.
[revision removed]
Detailed log of new commits:
Author: nbv
Date: Fri Aug 3 14:58:26 2018 +0300
# Adjusting test cases.
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: nbv
Date: Fri Aug 3 15:29:46 2018 +0300
# Adjusting test cases.
[revision removed]
Detailed log of new commits:
Author: nbv
Date: Fri Aug 3 15:29:46 2018 +0300
# Adjusting test cases.
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been created by Participant.
[revision removed]
Detailed log of new commits:
Author: nbv
Date: Mon Jul 16 15:32:23 2018 +0300
0029910: Porting to Debian80-64 : Regressions in Modeling Algorithms
Adjusting test cases.
Creation of new test cases.
[revision removed]
Detailed log of new commits:
Author: nbv
Date: Mon Jul 16 15:32:23 2018 +0300
0029910: Porting to Debian80-64 : Regressions in Modeling Algorithms
Adjusting test cases.
Creation of new test cases.
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: nbv
Date: Tue Aug 7 17:39:52 2018 +0300
# Correction in test case.
[revision removed]
Detailed log of new commits:
Author: nbv
Date: Tue Aug 7 17:39:52 2018 +0300
# Correction in test case.
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Some addition to the message #0029910.
Currently there are no good fix to eliminate unstable behavior. In the attached file "Attachment 1 (CXX)" the function IntImp_ComputeTangence(...) has been rewritten. But the behavior in the point of branching is unpredictable as before. Nevertheless I believe that the new algorithm can be stabilized easier by entering some tolerance (as I tried to do it with the current algorithm). This conclusion is based on the fact that the new behavior is (in my opinion) more logical and the intersection line has more chances to be continued even from the points with some "specialties". Maybe some another (3rd) criterion of iso-line choice will be more effective. But implementation of new algorithm requires revision all IntWalk_PWalking class and after implementation the behavior of intersection line in region near to the tangent zones will be significantly changed.
Currently there are no good fix to eliminate unstable behavior. In the attached file "Attachment 1 (CXX)" the function IntImp_ComputeTangence(...) has been rewritten. But the behavior in the point of branching is unpredictable as before. Nevertheless I believe that the new algorithm can be stabilized easier by entering some tolerance (as I tried to do it with the current algorithm). This conclusion is based on the fact that the new behavior is (in my opinion) more logical and the intersection line has more chances to be continued even from the points with some "specialties". Maybe some another (3rd) criterion of iso-line choice will be more effective. But implementation of new algorithm requires revision all IntWalk_PWalking class and after implementation the behavior of intersection line in region near to the tangent zones will be significantly changed.
Dear Author,
Please keep this bug as open even after integration the branch with test cases into MASTER.
Please keep this bug as open even after integration the branch with test cases into MASTER.
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]
Related records