commit:2017:01_09
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
commit:2017:01_09 [2017/01/09 10:34] – wautelet | commit:2017:01_09 [2017/01/09 13:30] (current) – [Cas tests ajoutés/supprimés] wautelet | ||
---|---|---|---|
Line 5: | Line 5: | ||
==== Robustesse Opération de Projection ==== | ==== Robustesse Opération de Projection ==== | ||
+ | Jusqu' | ||
+ | * Assessment of methods for computing the closest point projection, penetration and gap functions in contact searching problems, Kopacka J. et al., 2015. | ||
+ | * On the solvability of closest point projection procedures in contact analysis: Analysis and solution strategy for surfaces of arbitrary geometry, Knoyukhov A. and Schweizerhof K., 2008. | ||
+ | |||
+ | Bien que négligé par les auteurs du premier papier, l' | ||
+ | |||
+ | Pour ne pas changer et comme d' | ||
+ | |||
+ | Dans le cas de la projection sur une surface ou une courbe, le problème revient à minimiser une fonction distance. | ||
+ | Dans le cas de la projection orientée sur une surface ou une courbe, le problème revient à résoudre une équation non linéaire (distance d'un point de la courbe/de la surface à la droite vaut zéro). | ||
+ | |||
+ | En relisant une x fois les opérations de projection orientée, j'ai constaté qu' | ||
+ | |||
+ | === Méthode Hybride - Inexact Line Search === | ||
+ | |||
+ | Si la matrice hessienne n'est pas définie positive, nous avons dès lors d'une direction de croissance de la fonction objective. Il suffit tout simplement de prendre l' | ||
+ | Si la direction obtenue est presque perpendiculaire au gradient ou si la matrice hessienne est semi-définie positive (singulière), | ||
+ | |||
+ | Dans le cas d'une minimisation d'une fonction non linéaire, l' | ||
+ | |||
+ | Deux line search inexactes sont disponibles et implémentées dans Metafor : | ||
+ | |||
+ | * Backtracking line search (Utiliser en général pour la résolution d' | ||
+ | |||
+ | * More Thuente line search (State of the art) (Utiliser en général pour la minimisation d'une fonction non linéaire) : il requiert juste l' | ||
+ | |||
+ | Finalement, j'ai du réécrire la procédure utilisée pour l' | ||
+ | |||
+ | Pour la projection sur les NURBS, il serait peut être intéressant de faire un BFGS method pour calculer les projections, | ||
+ | |||
+ | === Modification de la matrice hessienne === | ||
+ | |||
+ | Afin de continuer à utiliser la procédure de Newton-Raphson et toujours garantir une diminution de la fonction objective, j'ai implémenté une méthode qui rend la matrice définie positive tout en conservant une matrice bien conditionnée. L' | ||
+ | |||
+ | === Résumé === | ||
+ | |||
+ | Que soit avec l'une ou l' | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | ==== Normale sur un patch de Coon bilinéaire ==== | ||
+ | |||
+ | J'ai corrigé l' | ||
+ | |||
+ | Sinon, il y avait une différence si on calculait la normale à partir des deux tangentes locales ! | ||
==== Projection Nurbs Surface ==== | ==== Projection Nurbs Surface ==== | ||
Line 11: | Line 58: | ||
J'ai nettoyé l' | J'ai nettoyé l' | ||
- | J'ai fait une correction dans le cas où on évalue une tangente en dehors du domaine de définition [0 1]x[0 1]. On fait une extrapolation selon le paramètre non constant. En réécrivant les équations, j'ai garanti que les tangentes | + | J'ai fait une correction dans le cas où on évalue une tangente en dehors du domaine de définition [0 1]x[0 1]. On fait une extrapolation selon la coordonnée intrinsèque de la surface en dehors du domaine de définition. En réécrivant les équations, j'ai garanti que les tangentes |
+ | |||
+ | En faisant une recherche bibliographique, | ||
| | ||
Dans le cas du cas test du tube, nous observons une singularité au niveau de la définition d'une tangente, car celle-ci vaut zéro. Ceci est normal vu la définition de la surface utilisée. | Dans le cas du cas test du tube, nous observons une singularité au niveau de la définition d'une tangente, car celle-ci vaut zéro. Ceci est normal vu la définition de la surface utilisée. | ||
Line 22: | Line 71: | ||
J'ai ajouté la possibilité d' | J'ai ajouté la possibilité d' | ||
+ | |||
+ | On peut demander aussi à calculer les tangentes et les normales par la même occasion. | ||
+ | |||
+ | ==== Line Search Exact ==== | ||
+ | |||
+ | J'ai juste ajouté un interface pour modifier les paramètres du line search exacte. L' | ||
==== Cas Test ==== | ==== Cas Test ==== | ||
Line 31: | Line 86: | ||
< | < | ||
- | [a]: | + | [a]:mtMath/ |
+ | [a]: | ||
[r]: | [r]: | ||
</ | </ | ||
Line 38: | Line 94: | ||
< | < | ||
- | [a]: | + | [a]:mtMath/ |
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
[r]: | [r]: | ||
</ | </ |
commit/2017/01_09.1483954454.txt.gz · Last modified: by wautelet