Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sketcher dof finder plus redundant recognition improvement #1429

Conversation

abdullahtahiriyo
Copy link
Contributor

This is the original DoF finder with further solver improvements:
https://forum.freecadweb.org/viewtopic.php?f=10&t=28370&start=30#p230585

We have gone through multiple GCS open tickets, checking whether it fixes it.

It solves some tickets. There are identified in the thread.

… pivoting QR decomposition

- Improve Debug information.
- Support for addition of constraints with driving information for the solver constraints.
- Removal of the driven constraints from the Jacobian for QR decomposition
- Removal of the value freewheeling parameter from the Jacobian for QR decomposition
- Full detection of dependent parameters where DoF are present for Dense QR.
…ters

- Support for addition of driving information to GCS constraints
- Support for keeping track of value parameters of driven constraints
- Support for getting which QR algoritm is being used at GCS level
=============================================================

- Modification to transparently switch from SparseQR to DenseQR and back to SparseQR when using the DoF finder command.
- Command Tools dof finder command name change
…accessed from the solver messages now

- Renaming of command
==================================================

The solver uses some heuristics to determine the "redundant to remove" and notify it to the user.

Basically it would pick the solver redundant constraint that affects most groups of redundants (popularity contest).

In the simple cases, all the redundants are equally popular and the popularity contest is untied by using the tagid (let say for simplicity it is the number at sketcher level Constraint3, the tagid=3).

This means that in simple cases, the solver systematically decides that the redundant constraint to handle from those showing a linear dependency is the one appearing the last.

This commits changes the way to untie the popularity contest, by giving more priority to those sketcher constraints that need a lower number of solver constraints (in other words,
those constraints that remove a lower amount of DoF). In case of tie, the tagid is then used to break the tie.

At least:
fixes FreeCAD#3434
fixes FreeCAD#1557
@abdullahtahiriyo
Copy link
Contributor Author

Rebased:
#1437

@abdullahtahiriyo abdullahtahiriyo deleted the sketcher_dof_finder_plus_redundant_recognition_improvement branch November 3, 2020 07:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant