commit:2017:01_09
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
commit:2017:01_09 [2017/01/09 10:04] – created wautelet | commit:2017:01_09 [2017/01/09 13:30] (current) – [Cas tests ajoutés/supprimés] wautelet | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | aaa | + | ===== Commit 2017-01-09 ====== |
+ | |||
+ | Ce commit est pour l' | ||
+ | |||
+ | ==== 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 ==== | ||
+ | |||
+ | 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 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 soient continues partout lors de cette extrapolation mais on observe une discontinuité de la dérivée seconde. | ||
+ | |||
+ | 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. | ||
+ | |||
+ | ==== Projection Multiple ==== | ||
+ | |||
+ | En 3D dans le cas d'une projection double, nous devons recalculer l' | ||
+ | |||
+ | ==== Visualisation ==== | ||
+ | |||
+ | 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 ==== | ||
+ | |||
+ | Afin de tester les nouveaux line search, j'ai ajouté trois cas-tests dans la libraire mtMath. | ||
+ | |||
+ | |||
+ | ===== Fichiers ajoutés/ | ||
+ | |||
+ | < | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [r]: | ||
+ | </ | ||
+ | |||
+ | ===== Cas tests ajoutés/ | ||
+ | |||
+ | < | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [r]: | ||
+ | </ | ||
+ | |||
+ | --- // |
commit/2017/01_09.1483952699.txt.gz · Last modified: by wautelet