FreeCAD: master 796c9d79

Author Committer Branch Timestamp Parent
Abdullah Tahiri wmayer master 2015-06-14 19:30:29 master 02df1acb
Changeset Sketcher: New Features: SparseQR decomposition and Solver advanced control TaskBox

==================================================================================

The solver has been adapted to use Eigen's SparseQR QR decomposition algorithm. The original
Dense QR implementation is maintained and can be selected using the Advanced Control TaskBox (see below).

The use of SparseQR provides over an order of magnitude improvement in solving time in complex sketches due to
the Sparse nature of the Jacobian matrix of the system of equations.

The solver advanced control is a new TaskBox in the Sketcher that allows to select which algorithms are to be used for
the different solving operations and tweak its parameters. It is not intended to be a user control, but means to debug
solving problems and improve the algorithms and their configuration.

This commit also introduces multithread support for Eigen. Currently it is only limited to products and does not provide
a substantial speed improvement. It is expected to have more multithreaded operations in Eigen in the future.

As a bonus, the TaskBoxes in the Taskbar of the Sketcher remember the last state (collapsed or deployed).
mod - src/Mod/Sketcher/App/CMakeLists.txt Diff File
mod - src/Mod/Sketcher/App/Sketch.cpp Diff File
mod - src/Mod/Sketcher/App/Sketch.h Diff File
mod - src/Mod/Sketcher/App/planegcs/GCS.cpp Diff File
mod - src/Mod/Sketcher/App/planegcs/GCS.h Diff File
mod - src/Mod/Sketcher/Gui/CMakeLists.txt Diff File
mod - src/Mod/Sketcher/Gui/TaskDlgEditSketch.cpp Diff File
mod - src/Mod/Sketcher/Gui/TaskDlgEditSketch.h Diff File
add - src/Mod/Sketcher/Gui/TaskSketcherSolverAdvanced.cpp Diff File
add - src/Mod/Sketcher/Gui/TaskSketcherSolverAdvanced.h Diff File
add - src/Mod/Sketcher/Gui/TaskSketcherSolverAdvanced.ui Diff File