commit:2017:08_10
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
commit:2017:08_10 [2017/08/10 15:53] – [Divers] wautelet | commit:2017:08_10 [2017/08/11 16:41] – wautelet | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== Commit 2017-06-07 ====== | + | ===== Commit 2017-08-11 ====== |
Ce commit est pour améliorer quelques routines liées au contact et pour mettre progressivement mes développements sur la version courante. | Ce commit est pour améliorer quelques routines liées au contact et pour mettre progressivement mes développements sur la version courante. | ||
- | ===== Bicubic Coons ===== | + | ===== Méthode d' |
- | J' | + | Suite à mes derniers développements sur le Lagrangien Augmenté, j' |
- | Si nous avons une surface plane constituée de patch de Coons, nous avons d'office une continuité des tangentes au niveau des frontières d'un patch à un autre. Lors que la surface n'est plus plane, il faut certaines conditions pour que les tangentes soient continues, ce qui n'est toujours aisé à remplir ! | + | Pour pouvoir utiliser les nouveaux schémas |
- | + | ||
- | Voici les commandes | + | |
< | < | ||
- | surfaceset | + | parameters[' |
- | | + | augLagAugmentation = AugLagExtrapolationAugmentation(alm) |
+ | augLagAugmentation.setExtrapolationMethod(parameters[' | ||
</ | </ | ||
- | Dans le cas de la boite carré, voici les différences que nous observons pour une pénalité | + | Parmi ces schémas, celui qui semble le plus efficace à l' |
- | < | + | ===== Robustesse des projections ===== |
- | Version avec patch de Coons bicubique : | + | |
- | User CPU : 1h6m52.28s | + | === Critère de divergence des itérations === |
- | Real CPU : 19m52.39s | + | |
+ | Afin d' | ||
+ | |||
+ | === Critère de convergence === | ||
+ | |||
+ | J'ai constaté que le terme de droite dans les critères normés sur les angles étaient trop stricts lorsque le résidu était faible ou les normes de tangentes étaient trop faibles. J'ai ajouté tout simplement une opération maximale entre la valeur 1.0 et la valeur actuelle de la norme pour passer automatiquement d'une norme relative à une norme absolue. | ||
+ | |||
+ | === Inexact Line Search === | ||
+ | |||
+ | J'ai constaté que l’exécution du Line Search inexacte renvoie une valeur du pas proche de zéro (ou même zéro) suite à des erreurs d' | ||
+ | |||
+ | === Interface des tolérances In/Out pour les outils de contact === | ||
+ | |||
+ | Après avoir lancé une série de test sur le cluster sur la squareBox et sur le sRail, j'ai été assez surpris de mes résultats sur la sensibilité aux coefficients de pénalité. En affichant les zones potentiellement en contact, j'ai constaté que des projections à priori valides n' | ||
- | [TSC-STP] | + | Clairement là, il y a un problème suite à l' |
- | [TSC-ITE] | + | |
- | [TSC-INW] | + | {{:commit:2017:notoleranceout0000.png?800|}} |
- | [TSC-EXW] | + | {{:commit:2017:toleranceout0000.png?800|}} |
- | [TSC-CPU] | + | |
- | [TSC-REA] | + | Il reste malheureusement à choisir la valeur de cette tolérance par cas-test ou pour tous les cas tests (1E-6?). Il faut savoir que les tests du type SurroundednessTest2D ou SurroundednessTest3D utilise une tolérance de 1E-6 pour le IN et OUT. |
- | [TSC-KER] | + | |
- | [TSC-MEM] | + | |
- | [TSC-EXT] | + | |
- | [TSC-EXT] | + | |
- | [TSC-EXT] | + | |
- | [TSC-EXT] | + | |
- | [TSC-EXT] | + | |
- | [TSC-EXT] | + | |
- | </ | + | |
< | < | ||
- | Version avec patch de Coons : | + | skinsetPunchTool = ContactTool(skinsetPunch) |
- | + | skinsetPunchTool.setOuterTolerance(parameters[' | |
- | User CPU : 1h10m25.63s | + | skinsetPunchTool.setInnerTolerance(parameters[' |
- | Real CPU : 21m6.52s | + | |
- | + | ||
- | [TSC-STP] Number of steps : 1766 | + | |
- | [TSC-ITE] | + | |
- | [TSC-INW] Internal energy : 4880.2 | + | |
- | [TSC-EXW] | + | |
- | [TSC-CPU] | + | |
- | [TSC-REA] | + | |
- | [TSC-KER] | + | |
- | [TSC-MEM] | + | |
- | [TSC-EXT] | + | |
- | [TSC-EXT] | + | |
- | [TSC-EXT] | + | |
- | [TSC-EXT] | + | |
- | [TSC-EXT] | + | |
- | [TSC-EXT] | + | |
</ | </ | ||
- | Pour montrer la discontinuité de la normale aux interfaces entre les patchs de Coons, il suffit d' | + | === Projection Informations === |
- | Version avec patch de Coons | + | Finalement, j'ai ajouté la possibilité |
- | {{: | + | < |
+ | skinsetPunchTool = ContactTool(skinsetPunch) | ||
+ | skinsetPunchTool.setProjectionInfoVerbose(True) | ||
+ | </ | ||
- | Version avec patch de Coons bicubique | + | Ce qui donne par exemple pour le cas de la squareBox (Première détection de contact) : |
+ | < | ||
+ | Projection Infos: 2897/3924 effective projections and 25/3924 failed projections | ||
+ | (average nbNRIt = 3.59372; average nbLSIt = 2.74042; average effective nbLSIt = 2.6236) | ||
+ | </ | ||
- | {{: | ||
- | ===== Correction Patch de Coons ===== | ||
- | Par la même occasion, j'ai corrigé une erreur dans les dérivées des tangentes pour les patchs de Coons. Elles sont utilisées pour la matrice de raideur analytique de contact avec les termes géométriques ! | + | |
===== Divers ===== | ===== Divers ===== | ||
=== Visualisation === | === Visualisation === | ||
+ | |||
+ | J'ai corrigé quelques bugs : | ||
+ | |||
+ | * Affichage des territoires de contact pour l'auto contact ! | ||
+ | * Ajout d'un test sur la présence d' | ||
=== Cas test === | === Cas test === | ||
Line 92: | Line 89: | ||
< | < | ||
- | [a]:mtGeo\mtGeoBicubicCoons.cpp | + | [a]:mtGeo/ |
- | [a]:mtGeo\mtGeoBicubicCoons.h | + | [a]:mtGeo/ |
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
[r]: | [r]: | ||
</ | </ | ||
Line 100: | Line 101: | ||
< | < | ||
- | [a]:apps\qs\contactBicubicCoons.py | + | [a]: |
[r]: | [r]: | ||
</ | </ | ||
- | --- // | + | --- // |
commit/2017/08_10.txt · Last modified: 2017/08/11 16:43 by wautelet