MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Related Changesets ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0029719Community[OCCT] OCCT:Modeling Algorithmspublic2018-04-23 17:492018-06-23 13:56
Reporterdrazmyslovich 
Assigned Tobugmaster 
PrioritynormalSeveritytweak 
StatusverifiedResolutionfixed 
PlatformWindowsOSVC++ 2010OS Version64 bit
Product Version[OCCT] 7.1.0 
Target Version[OCCT] 7.4.0*Fixed in Version 
Summary0029719: Modeling Algorithms - GeomPlate_BuildPlateSurface has no progress information and is not abortable
DescriptionFor the complex cases GeomPlate_BuildPlateSurface takes a lot of time. At the same time it's not abortable and has no progress information. It makes the usage of GeomPlate_BuildPlateSurface in the end-user application is hardly possible - the user thinks, that the program hangs.
Steps To ReproduceN/A
TagsNo tags attached.
Test case numberNot needed
Attached Files

- Relationships

-  Notes
(0075617)
git (administrator)
2018-04-23 17:52

Branch CR29719 has been created by drazmyslovich.

SHA-1: 0d4af647dffcfbd65aac91bc58b9c9b2132ab7da


Detailed log of new commits:

Author: drazmyslovich
Date: Mon Apr 23 16:52:43 2018 +0200

    0029719: Enhance GeomPlate_BuildPlateSurface with the progress information and the user break response
(0075618)
drazmyslovich (developer)
2018-04-23 17:58

Dear msv! We added the progress indicator as an optional parameter for GeomPlate_BuildPlateSurface and propagated to Plate_Plate class. Unfortunately, we needed to substitute the standard LU decomposition from the math package with a local algorithm, which supports the progress information. We were unsure, if the standard math package is allowed to use the end-user concept of Message_ProgressIndicator, therefore we decided to duplicate the function for the local usage. Thank you.
(0075622)
msv (developer)
2018-04-23 19:44

Dear drazmyslovich, thank you for the contribution!

Before passing the patch on the next stage, could you please consider the following remarks:

src/Plate/Plate_Plate.hxx
- replace "#include <Message_ProgressIndicator.hxx>" with declaration "class Message_ProgressIndicator;"

src/GeomPlate/GeomPlate_BuildPlateSurface.cxx
- Please instrument the other calls to SolveTI in lines 703, 1730. For the last, add progress indicator parameter to the method ComputeSurfInit().
- Please make the equal indentation of lines. For that, use "8 spaces per tab character" setting in your editor.

src/Plate/Plate_Plate.cxx
- The package math is located in the toolkit TKMath. The package Message is located in the toolkit TKernel. TKernel has the lowest level. So, it is OK to pass the instance of progress indicator to math classes. So, please avoid code duplication and add progress indicator in math where it is needed.
- I wonder if it is also needed to use progress indicator in the methods math_Gauss::Solve() and Invert(). Don't they take much time?
- The Gauss algo in the lines 561, 664, 930 is to be called with progress indicator as well.
- When you return on user break you should set OK to false, otherwise IsDone() will return true.
(0075632)
git (administrator)
2018-04-24 09:53

Branch CR29719 has been updated by drazmyslovich.

SHA-1: 6033b43fad6638f90f6c9348534fe555a6485547


Detailed log of new commits:

Author: drazmyslovich
Date: Tue Apr 24 08:53:07 2018 +0200

    0029719: Code review modifications for the progress information enhancements of GeomPlate_BuildPlateSurface

(0075633)
drazmyslovich (developer)
2018-04-24 09:55

Dear msv, I modified the code according to your recommendations. According to our observations the most critical part of math_Gauss is LU decomposition. All other algorithms are quite fast. Please, review the latest state of the branch. Thank you.
(0075647)
msv (developer)
2018-04-24 12:55

More remarks:

src/math/math_Recipes.cxx
- Line 188: why max parameter is set to n+1. It should be the number of iterations, i.e. n.
- Line 200: this is extra statement.

src/math/math_Gauss.hxx
- Line 60: Please wrap the line to make it shorter.

src/Plate/Plate_Plate.hxx
- Line 87: Please wrap the line to make it shorter.

src/GeomPlate/GeomPlate_BuildPlateSurface.cxx
- Lines 663-668, 698-726 have inconsistent indentation.

Please form one commit in the new branch CR29719_1 using the following rule for commit message:
1. The first line must be equal to the summary field of the bug.
2. The second line must be empty.
3. The next lines present the description of the fix if it is needed.
4. The other commits (additional) may contain only lines commented with '#' character. Such lines will be ignored by bugmaster when combining to one commit.

Thank you.
(0075648)
git (administrator)
2018-04-24 13:30

Branch CR29719_1 has been created by drazmyslovich.

SHA-1: ee968ef614da984086c5835ce0290f26261fe1b6


Detailed log of new commits:

Author: drazmyslovich
Date: Mon Apr 23 16:52:43 2018 +0200

    0029719: Modeling Algorithms - GeomPlate_BuildPlateSurface has no progress information and is not abortable
    
    The Message_ProgressIndicator handle is added as a parameter to the function LU_Decompose and the the member functions of math_Gauss, Plate_Plate and GeomPlate_BuildPlateSurface classes.
(0075649)
drazmyslovich (developer)
2018-04-24 13:31

Please, check the new branch CR29719_1
(0075652)
git (administrator)
2018-04-24 15:07

Branch CR29719_1 has been updated by msv.

SHA-1: e6c3e277cc198894f9e8f97a596041b51b461418


Detailed log of new commits:

Author: msv
Date: Tue Apr 24 15:06:08 2018 +0300

    #correct indents

(0075653)
msv (developer)
2018-04-24 15:12

I have made minor corrections of intentation, and put the patch onto certification testing.
Jenkins job is CR29719-master-msv.
(0075674)
msv (developer)
2018-04-25 11:54

Reviewed.
(0076197)
bugmaster (administrator)
2018-05-23 18:31

Combination -
OCCT branch : CR29719_1 SHA - e6c3e277cc198894f9e8f97a596041b51b461418
Products branch : master SHA - 4667f5aca4a456ae13db44bc7210e8cac1ab89f0
was compiled on Linux, MacOS and Windows platforms and tested in optimize mode.

Number of compiler warnings:
No new/fixed warnings

Regressions/Differences/Improvements:
No regressions/differences

CPU differences:
Debian70-64:
OCCT
Total CPU difference: 18234.80999999992 / 18243.73999999987 [-0.05%]
Products
Total CPU difference: 7509.7400000000525 / 7501.010000000052 [+0.12%]
Windows-64-VC10:
OCCT
Total CPU difference: 18226.345634798417 / 18049.78370299853 [+0.98%]
Products
Total CPU difference: 8275.509847799878 / 8220.566295599881 [+0.67%]


Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention
(0076933)
git (administrator)
2018-06-23 13:56

Branch CR29719 has been deleted by kgv.

SHA-1: 6033b43fad6638f90f6c9348534fe555a6485547
(0076934)
git (administrator)
2018-06-23 13:56

Branch CR29719_1 has been deleted by kgv.

SHA-1: e6c3e277cc198894f9e8f97a596041b51b461418

- Related Changesets
occt: master 9f785738
Timestamp: 2018-04-23 14:52:43
Author: drazmyslovich
Committer: bugmaster
Details ] Diff ]
0029719: Modeling Algorithms - GeomPlate_BuildPlateSurface has no progress information and is not abortable

The Message_ProgressIndicator handle is added as a parameter to the function LU_Decompose and the the member functions of math_Gauss, Plate_Plate and GeomPlate_BuildPlateSurface classes.
mod - src/GeomPlate/GeomPlate_BuildPlateSurface.cxx Diff ] File ]
mod - src/GeomPlate/GeomPlate_BuildPlateSurface.hxx Diff ] File ]
mod - src/math/math_Gauss.cxx Diff ] File ]
mod - src/math/math_Gauss.hxx Diff ] File ]
mod - src/math/math_Recipes.cxx Diff ] File ]
mod - src/math/math_Recipes.hxx Diff ] File ]
mod - src/Plate/Plate_Plate.cxx Diff ] File ]
mod - src/Plate/Plate_Plate.hxx Diff ] File ]

- Issue History
Date Modified Username Field Change
2018-04-23 17:49 drazmyslovich New Issue
2018-04-23 17:49 drazmyslovich Assigned To => msv
2018-04-23 17:52 git Note Added: 0075617
2018-04-23 17:58 drazmyslovich Note Added: 0075618
2018-04-23 17:58 drazmyslovich Status new => resolved
2018-04-23 19:44 msv Note Added: 0075622
2018-04-23 19:44 msv Assigned To msv => drazmyslovich
2018-04-23 19:44 msv Status resolved => assigned
2018-04-24 09:53 git Note Added: 0075632
2018-04-24 09:55 drazmyslovich Note Added: 0075633
2018-04-24 09:55 drazmyslovich Assigned To drazmyslovich => msv
2018-04-24 09:55 drazmyslovich Status assigned => resolved
2018-04-24 09:57 kgv Summary GeomPlate_BuildPlateSurface has no progress information and is not abortable => Modeling Algorithms - GeomPlate_BuildPlateSurface has no progress information and is not abortable
2018-04-24 12:55 msv Note Added: 0075647
2018-04-24 12:56 msv Assigned To msv => drazmyslovich
2018-04-24 12:56 msv Status resolved => assigned
2018-04-24 13:30 git Note Added: 0075648
2018-04-24 13:31 drazmyslovich Note Added: 0075649
2018-04-24 13:31 drazmyslovich Assigned To drazmyslovich => msv
2018-04-24 13:31 drazmyslovich Status assigned => resolved
2018-04-24 15:07 git Note Added: 0075652
2018-04-24 15:12 msv Note Added: 0075653
2018-04-25 11:54 msv Note Added: 0075674
2018-04-25 11:54 msv Assigned To msv => bugmaster
2018-04-25 11:54 msv Status resolved => reviewed
2018-05-23 18:17 bugmaster Test case number => Not needed
2018-05-23 18:31 bugmaster Note Added: 0076197
2018-05-23 18:31 bugmaster Status reviewed => tested
2018-06-14 18:20 bugmaster Changeset attached => occt master 9f785738
2018-06-14 18:20 bugmaster Status tested => verified
2018-06-14 18:20 bugmaster Resolution open => fixed
2018-06-23 13:56 git Note Added: 0076933
2018-06-23 13:56 git Note Added: 0076934


Copyright © 2000 - 2018 MantisBT Team
Powered by Mantis Bugtracker