MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0030892Community[OCCT] OCCT:Modeling Algorithmspublic2019-08-12 15:182020-10-02 08:16
Reporteremv 
Assigned Toemv 
PrioritynormalSeverityfeature 
StatusassignedResolutionopen 
PlatformOSOS Version
Product Version 
Target Version[OCCT] 7.6.0*Fixed in Version 
Summary0030892: Modeling Algorithms - Improve Extrema_ExtPS algorithm by unifying the GRAD and TREE methods
DescriptionIt is suggested to unify the GRAD and TREE algorithms of Extrema_ExtPS for looking for only the minimal/maximal distance between the point and surface.
Complete unification does not look possible, as in some cases all extrema solutions are required, so option such FindAllSolutions might be present.

Such unification may improve quality and performance of the Point-Surface Extrema algorithm and greatly simplify its usage.
TagsNo tags attached.
Test case number
Attached Files

- Relationships
related to 0027534closedbugmaster Open CASCADE [Regression to 6.9.1]: Infinite loop in Curve on Surface projection algorithm 
related to 0026166assignedabv Community Improve ShapeHealing execution time on shape without PCurves 

-  Notes
(0087006)
git (administrator)
2019-09-11 13:07

Branch CR30892 has been created by emv.

SHA-1: 59be8bf11d3e1b7fbe0b4b00a243557f5952dc37


Detailed log of new commits:

Author: emv
Date: Mon Aug 19 08:41:04 2019 +0300

    0030892: Improve Extrema_ExtPS algorithm by unifying the GRAD and TREE methods
    
    Refactoring of the Extrema_GenExtPS class in order to improve performance and robustness of the algorithm by unifying the GRAD and TREE search methods.
(0087009)
git (administrator)
2019-09-11 13:19

Branch CR30892 has been updated forcibly by emv.

SHA-1: 87fd9a30bcaa2183b29c514c5c83817fb4006eb8
(0087010)
git (administrator)
2019-09-11 13:31

Branch CR30892 has been updated forcibly by emv.

SHA-1: e9f0796502a3558b9bcb68fbbfb14feec77a40a2
(0087057)
git (administrator)
2019-09-13 13:59

Branch CR30892 has been updated by emv.

SHA-1: 71ec6541c49d5f048930614e9693519f64d25121


Detailed log of new commits:

Author: emv
Date: Fri Sep 13 13:55:52 2019 +0300

    # Decrease the box of the sample to make BVH tree more effective.
    # Use extreme MIN target in ProjLib_CompProjectedCurve.

(0087765)
git (administrator)
2019-10-03 14:18

Branch CR30892 has been updated forcibly by emv.

SHA-1: 8270a0b1111230c5108a4fc7ac53a8e17fbeee64
(0091528)
git (administrator)
2020-04-13 07:51

Branch CR30892 has been updated forcibly by emv.

SHA-1: cd6e2ba25e18ea54ab1b145ae95f65df349544ee
(0092281)
git (administrator)
2020-05-21 08:55

Branch CR30892 has been updated forcibly by emv.

SHA-1: b062dc431dd9e6791207f6895881377f77b304d8
(0092284)
git (administrator)
2020-05-21 10:04

Branch CR30892 has been updated by emv.

SHA-1: 6542788b0445ed24bc72d9a6f8d77c1f1fb03be5


Detailed log of new commits:

Author: emv
Date: Thu May 21 10:05:05 2020 +0300

    # fixing errors on linux and MacOS

(0092290)
git (administrator)
2020-05-21 12:43

Branch CR30892_1 has been created by emv.

SHA-1: feb0415c82c526e5abf4c8d98ab42b8cab5b5b22


Detailed log of new commits:

Author: emv
Date: Mon Aug 19 08:41:04 2019 +0300

    0030892: Improve Extrema_ExtPS algorithm by unifying the GRAD and TREE methods
    
    Refactoring of the Extrema_GenExtPS class in order to improve performance and robustness of the algorithm by unifying the GRAD and TREE search methods.
(0092342)
git (administrator)
2020-05-26 08:49

Branch CR30892_1 has been updated forcibly by emv.

SHA-1: 6afb2f11be4046d8383f92db06f2d708f1dd0d3e
(0092355)
git (administrator)
2020-05-27 10:09

Branch CR30892_1 has been updated by emv.

SHA-1: a3a2344fd0dd37711e21db8223e9e2cf910e4478


Detailed log of new commits:

Author: emv
Date: Wed May 27 10:10:00 2020 +0300

    # revert increase of a box of a max corner cell.

(0092361)
git (administrator)
2020-05-27 16:42

Branch CR30892_1 has been updated by emv.

SHA-1: 86b79d028c268c5ba2b25559fcf8aed6ecf2ec50


Detailed log of new commits:

Author: emv
Date: Wed May 27 16:42:36 2020 +0300

    # Perform localized extrema search in ComputeApproxOnPolarSurface

(0092384)
git (administrator)
2020-05-28 11:49

Branch CR30892_1 has been updated by emv.

SHA-1: 741fb1b317acf4e606fda14288497899ec01aa02


Detailed log of new commits:

Author: emv
Date: Thu May 28 11:41:34 2020 +0300

    # cosmetics

(0092387)
git (administrator)
2020-05-28 16:03

Branch CR30892_1 has been updated forcibly by emv.

SHA-1: a4ca000f2de29ecc57435a25ee3c4ddf7e66b97a
(0092400)
git (administrator)
2020-05-29 11:55

Branch CR30892_1 has been updated by emv.

SHA-1: 1ab1276d3a162aa24c11c88a8052eaf203e45758


Detailed log of new commits:

Author: emv
Date: Fri May 29 11:55:09 2020 +0300

    # cosmetics.

(0092424)
git (administrator)
2020-06-01 09:30

Branch CR30892_1 has been updated forcibly by emv.

SHA-1: f16b1881038c9a83477d11e83b87347b90b618d3
(0092440)
git (administrator)
2020-06-02 10:23

Branch CR30892_1 has been updated forcibly by emv.

SHA-1: 0819ed1465f42f6c316f2d0f59fa7a8b977d1a68
(0093028)
git (administrator)
2020-07-07 08:42

Branch CR30892_1 has been updated forcibly by emv.

SHA-1: c911c9ebd217aa81d56889f76cce7097c219dd9a
(0093656)
git (administrator)
2020-08-26 22:25

Branch CR30892_1 has been updated forcibly by emv.

SHA-1: 51aad8886509b1e0e6c9630087b5a1dfde30b58a
(0093661)
git (administrator)
2020-08-27 12:37

Branch CR30892_1 has been updated by emv.

SHA-1: 141831f7bace286daf762948d418c59a62881997


Detailed log of new commits:

Author: emv
Date: Thu Aug 27 12:30:45 2020 +0300

    # use std::vector in Extrema_FuncPSNorm
    # Minimize the grid cell bounding box

(0093671)
git (administrator)
2020-08-27 16:47

Branch CR30892_1 has been updated forcibly by emv.

SHA-1: 204acb3e931c9fc005816d0859bb3f6b06750ecc
(0094359)
git (administrator)
2020-09-10 11:04

Branch CR30892_2 has been created by emv.

SHA-1: 4134999287c1795c38ac2f0d7abe43672f729948


Detailed log of new commits:

Author: emv
Date: Mon Aug 19 08:41:04 2019 +0300

    0030892: Improve Extrema_ExtPS algorithm by unifying the GRAD and TREE methods
    
    Refactoring of the Extrema_GenExtPS class in order to improve performance and robustness of the algorithm by unifying the GRAD and TREE search methods.
(0094387)
git (administrator)
2020-09-10 16:01

Branch CR30892_2 has been updated forcibly by emv.

SHA-1: 457a5de722d7bc6d9e715f2ef32b7e77ba7f9331
(0095025)
git (administrator)
2020-09-18 14:14

Branch CR30892_2 has been updated forcibly by emv.

SHA-1: 84ee92209790813c674261fb942e4727642e01c5
(0095037)
git (administrator)
2020-09-18 16:30

Branch CR30892_2 has been updated forcibly by emv.

SHA-1: 52ff4caede90afe364dd91a22ac7d4e127aab969
(0095174)
abv (manager)
2020-09-21 08:35

I have made some experiments on current version of the fix against master and CR26166, here are results.

1. Translation of large STEP files

DRAW commands:

pload ALL
autodisplay 0
chrono s restart
stepread [locate_data_file LP1.stp] a *
chrono s stop show

The reported time is CPU time in seconds.

File | master | CR26166 | CR30892
--------|--------|---------|---------
LP1.stp | 21.6 | 32 | 21.6
LP2.stp | 74.9 | 70.2 | 63.8
LP3.stp | 910 | 711 | 867

2. Tests from branch CR26166

Test | master | CR26166 | CR30892
-------------------|--------|---------|--------
perf heal pcurves1 | 9.86 | 2.1 | 4.2
perf heal pcurves2 | 3.94 | 2.3 | 1.9
(0095175)
abv (manager)
2020-09-21 08:44

In addition, I have run tests in single thread, comparing master and CR30892_2.
Here are test cases where CPU regressions are noticed:

CPU bugs moddata_3 bug27534: 14.046875 / 2.9375 [+378.19%]
CPU de step_3 F2: 17.4375 / 14.328125 [+21.70%]
CPU de step_4 I1: 15.75 / 13.484375 [+16.80%]

Note: OCCT was built with VS 2019, 64 bit Release indeed; run on CPU i5-8600, 6 cores
(0095176)
emv (developer)
2020-09-21 08:55

Hello Andrey, these are the same cases revealed by jenkins tests.
The last two cases are stable ones, but I cannot reproduce the first one. It works quite fast on my configuration (VS2015, 64 bit Release):
TOTAL CPU TIME: 0.03125 sec.
(0095177)
abv (manager)
2020-09-21 10:01

I betlieve the reason of difference on test case bugs moddata_3 bug27534 is that I build with VS 2019 (vc142)
(0095447)
szy (manager)
2020-09-28 17:51

Igor,
Could you check can we have it in 7.5.0 or it requires additional testing...
(0095464)
ifv (developer)
2020-09-29 15:25

Dear Sergey,
In my opinion this issue required additional investigations:
1. Bad performance of bugs moddata_3 bug27534, which is in test result of CR30892_2-CR30892-emv for Windows platform. Really this test is not quite correct, because for projection of curve on surface abnormally large tolerance = 0.2 is used. May be it causes some kind of numerical instability in new algorithm.

2. Possible lost of functionality: in mode GRAD and, for example flag MIN, old algorithm theoretically can produce all local minimal distances between point and surface. New algorithm cannot reproduce the same results. It can cause regressions in any customer applications.

3. If we want to improve performance, it would be interesting to test using math_PSO instead of BVH for seaching first approximation of global minimal distance (similar to extrema curve-surface)

 
(0095478)
szy (manager)
2020-09-30 08:59

See remarks of Igor.
(0095546)
git (administrator)
2020-10-02 08:15

Branch CR30892_3 has been created by emv.

SHA-1: b8e440d295c93224536c19a81b6e2352a936607f


Detailed log of new commits:

Author: emv
Date: Fri Oct 2 08:15:31 2020 +0300

    # revert changes in ProjLib_ComputeApproxOnPolarSurface just for testing.

Author: emv
Date: Fri Sep 18 13:06:08 2020 +0300

    # compute all grid points in a single pass to avoid cache rebuild on BSpline surfaces.
    # use iterator for array initialization with default distance values.

Author: emv
Date: Mon Aug 19 08:41:04 2019 +0300

    0030892: Improve Extrema_ExtPS algorithm by unifying the GRAD and TREE methods
    
    Refactoring of the Extrema_GenExtPS class in order to improve performance and robustness of the algorithm by unifying the GRAD and TREE search methods.

- Issue History
Date Modified Username Field Change
2019-08-12 15:18 emv New Issue
2019-08-12 15:18 emv Assigned To => msv
2019-09-11 13:07 git Note Added: 0087006
2019-09-11 13:19 git Note Added: 0087009
2019-09-11 13:31 git Note Added: 0087010
2019-09-13 13:59 git Note Added: 0087057
2019-09-13 16:00 emv Assigned To msv => emv
2019-09-13 16:00 emv Status new => assigned
2019-10-02 16:52 emv Relationship added related to 0030868
2019-10-02 17:21 abv Relationship added related to 0026166
2019-10-03 14:18 git Note Added: 0087765
2020-04-13 07:51 git Note Added: 0091528
2020-05-21 08:55 git Note Added: 0092281
2020-05-21 10:04 git Note Added: 0092284
2020-05-21 12:43 git Note Added: 0092290
2020-05-26 08:49 git Note Added: 0092342
2020-05-27 10:09 git Note Added: 0092355
2020-05-27 16:42 git Note Added: 0092361
2020-05-28 11:49 git Note Added: 0092384
2020-05-28 16:03 git Note Added: 0092387
2020-05-29 11:55 git Note Added: 0092400
2020-06-01 09:30 git Note Added: 0092424
2020-06-02 10:23 git Note Added: 0092440
2020-07-07 08:42 git Note Added: 0093028
2020-08-26 22:25 git Note Added: 0093656
2020-08-27 12:37 git Note Added: 0093661
2020-08-27 16:47 git Note Added: 0093671
2020-08-28 12:26 emv Target Version 7.5.0 => 7.6.0*
2020-09-10 11:04 git Note Added: 0094359
2020-09-10 16:01 git Note Added: 0094387
2020-09-18 14:14 git Note Added: 0095025
2020-09-18 16:30 git Note Added: 0095037
2020-09-21 08:35 abv Note Added: 0095174
2020-09-21 08:44 abv Note Added: 0095175
2020-09-21 08:55 emv Note Added: 0095176
2020-09-21 10:01 abv Note Added: 0095177
2020-09-21 10:02 abv Relationship added related to 0027534
2020-09-28 17:49 szy Assigned To emv => ifv
2020-09-28 17:51 szy Note Added: 0095447
2020-09-28 20:31 kgv Severity minor => feature
2020-09-28 20:31 kgv Summary Improve Extrema_ExtPS algorithm by unifying the GRAD and TREE methods => Modeling Algorithms - Improve Extrema_ExtPS algorithm by unifying the GRAD and TREE methods
2020-09-28 20:31 kgv Status assigned => feedback
2020-09-29 14:45 ifv Assigned To ifv => szy
2020-09-29 14:46 ifv Assigned To szy => ifv
2020-09-29 15:25 ifv Note Added: 0095464
2020-09-29 15:25 ifv Assigned To ifv => szy
2020-09-29 15:25 ifv Status feedback => reviewed
2020-09-29 15:25 ifv Status reviewed => feedback
2020-09-30 08:58 szy Assigned To szy => emv
2020-09-30 08:59 szy Note Added: 0095478
2020-09-30 08:59 szy Status feedback => assigned
2020-10-02 08:15 git Note Added: 0095546


Copyright © 2000 - 2020 MantisBT Team
Powered by Mantis Bugtracker