View Issue Details

IDProjectCategoryView StatusLast Update
0030892CommunityOCCT:Modeling Algorithmspublic2021-08-29 19:03
Reporteremv Assigned Toemv  
PrioritynormalSeverityfeature 
Status assignedResolutionopen 
Target Version7.7.0 
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

Relationships

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

Activities

git

2019-09-11 13:07

administrator   ~0087006

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.

git

2019-09-11 13:19

administrator   ~0087009

Branch CR30892 has been updated forcibly by emv.

SHA-1: 87fd9a30bcaa2183b29c514c5c83817fb4006eb8

git

2019-09-11 13:31

administrator   ~0087010

Branch CR30892 has been updated forcibly by emv.

SHA-1: e9f0796502a3558b9bcb68fbbfb14feec77a40a2

git

2019-09-13 13:59

administrator   ~0087057

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.

git

2019-10-03 14:18

administrator   ~0087765

Branch CR30892 has been updated forcibly by emv.

SHA-1: 8270a0b1111230c5108a4fc7ac53a8e17fbeee64

git

2020-04-13 07:51

administrator   ~0091528

Branch CR30892 has been updated forcibly by emv.

SHA-1: cd6e2ba25e18ea54ab1b145ae95f65df349544ee

git

2020-05-21 08:55

administrator   ~0092281

Branch CR30892 has been updated forcibly by emv.

SHA-1: b062dc431dd9e6791207f6895881377f77b304d8

git

2020-05-21 10:04

administrator   ~0092284

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

git

2020-05-21 12:43

administrator   ~0092290

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.

git

2020-05-26 08:49

administrator   ~0092342

Branch CR30892_1 has been updated forcibly by emv.

SHA-1: 6afb2f11be4046d8383f92db06f2d708f1dd0d3e

git

2020-05-27 10:09

administrator   ~0092355

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.

git

2020-05-27 16:42

administrator   ~0092361

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

git

2020-05-28 11:49

administrator   ~0092384

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

git

2020-05-28 16:03

administrator   ~0092387

Branch CR30892_1 has been updated forcibly by emv.

SHA-1: a4ca000f2de29ecc57435a25ee3c4ddf7e66b97a

git

2020-05-29 11:55

administrator   ~0092400

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.

git

2020-06-01 09:30

administrator   ~0092424

Branch CR30892_1 has been updated forcibly by emv.

SHA-1: f16b1881038c9a83477d11e83b87347b90b618d3

git

2020-06-02 10:23

administrator   ~0092440

Branch CR30892_1 has been updated forcibly by emv.

SHA-1: 0819ed1465f42f6c316f2d0f59fa7a8b977d1a68

git

2020-07-07 08:42

administrator   ~0093028

Branch CR30892_1 has been updated forcibly by emv.

SHA-1: c911c9ebd217aa81d56889f76cce7097c219dd9a

git

2020-08-26 22:25

administrator   ~0093656

Branch CR30892_1 has been updated forcibly by emv.

SHA-1: 51aad8886509b1e0e6c9630087b5a1dfde30b58a

git

2020-08-27 12:37

administrator   ~0093661

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

git

2020-08-27 16:47

administrator   ~0093671

Branch CR30892_1 has been updated forcibly by emv.

SHA-1: 204acb3e931c9fc005816d0859bb3f6b06750ecc

git

2020-09-10 11:04

administrator   ~0094359

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.

git

2020-09-10 16:01

administrator   ~0094387

Branch CR30892_2 has been updated forcibly by emv.

SHA-1: 457a5de722d7bc6d9e715f2ef32b7e77ba7f9331

git

2020-09-18 14:14

administrator   ~0095025

Branch CR30892_2 has been updated forcibly by emv.

SHA-1: 84ee92209790813c674261fb942e4727642e01c5

git

2020-09-18 16:30

administrator   ~0095037

Branch CR30892_2 has been updated forcibly by emv.

SHA-1: 52ff4caede90afe364dd91a22ac7d4e127aab969

abv

2020-09-21 08:35

manager   ~0095174

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

abv

2020-09-21 08:44

manager   ~0095175

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

emv

2020-09-21 08:55

developer   ~0095176

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.

abv

2020-09-21 10:01

manager   ~0095177

I betlieve the reason of difference on test case bugs moddata_3 bug27534 is that I build with VS 2019 (vc142)

szy

2020-09-28 17:51

manager   ~0095447

Igor,
Could you check can we have it in 7.5.0 or it requires additional testing...

ifv

2020-09-29 15:25

developer   ~0095464

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)

 

szy

2020-09-30 08:59

manager   ~0095478

See remarks of Igor.

git

2020-10-02 08:15

administrator   ~0095546

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 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
2021-08-29 19:03 msv Target Version 7.6.0 => 7.7.0