Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2017:11_21

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
commit:2017:11_21 [2017/11/21 19:03] – [Verbose pour le contact] wauteletcommit:2017:11_21 [2017/11/26 18:33] (current) wautelet
Line 1: Line 1:
-===== Commit 2017-09-08 ======+===== Commit 2017-11-21 ======
  
 Ce commit est pour ajouter l'algorithme de décision des projections multiples en 3D. Ce commit est pour ajouter l'algorithme de décision des projections multiples en 3D.
 +
 +<note important>
 +Avec cette nouvelle méthode, nous n'aurons plus jamais cette situation là : 
 +WARNING_MESSAGE("decideProjectionState failed - using first proj"); // debug only
 +// le raisonnement de denis a merde, on choisit une target - RoBo
 +</note>
  
 ===== mtGeoSkinProjectionSelector ===== ===== mtGeoSkinProjectionSelector =====
  
-Expliquer le principe..+Dans le cadre d'un entité maître du type mtGeoMultiProjSkin, la normale n'est pas tout continue si on passe d'une side à l'autre sur cette entitéIl faut dès lors parmi toutes les projections admissibles, retenir les projections pertinentes et si besoin appliquer un correctif de la normale, si nous avons une projection sur un coin, sur un bord ou une double projectionJe vous fais grâce du raisonnement que j'ai suivi pour obtenir une projection finale car l’entièreté du code source est documenté sur ce sujet là et nous fonctionnons sous forme de filtre, c'est à dire que l'on élimine au fur et à mesure les projections admissibles que l'on avance dans l'algorithme pour au final avoir qu'une seule projection ou deux projections admissibles à partir desquelles on traite les cas particuliers. 
-Rappeler que l'ancienne version est fonctionnelle +Je tiens à ajouter que ceci n'est pas encore parfait car il manque des types de projection en 3D, qui sont des projections dites triples pour capter la courbure locale de la surface correctement, sinon on oscille entre deux paires de projection possible à travers les itérations de NR ...    
-absence de choix de projection peut empecher la décision  +  
-Debug mtGeoProjectionSelector+<note important> 
 +Par défaut, l’entièreté des cas tests tourne avec les nouvelles versions des sélecteur de projection en 2D/3D. 
 +On peut si besoin activer l'ancienne version par la procédure définie ci-dessus. 
 +</note> 
 + 
 +<code> 
 +ci = Rd|Dd|ScContactInteraction(1) 
 +ci.setUseClassicalProjectionSelector(True|False) 
 +</code>
  
 ===== Traitement des projection double en 3D ===== ===== Traitement des projection double en 3D =====
Line 20: Line 34:
 ===== apps.biomec.longBone.boneRepairWithRod ===== ===== apps.biomec.longBone.boneRepairWithRod =====
  
-Après inspection du cas test biomec, j'ai constaté que les surfaces de contact étaient très mal définies pour l'interaction de contact entre l'os et la barre : il y a des sides à l'intérieur de l'os (qui partage deux éléments finis volumiques). Pour palier au problème, il faudrait ajouter une filtre au sélecteur de noeuds lors de l'ajout dans un groupe, pour conserver que la peau extérieure.+Après inspection du cas test biomec, j'ai constaté que les surfaces de contact étaient très mal définies pour l'interaction de contact entre l'os et la barre : il y a des sides à l'intérieur de l'os (qui partage deux éléments finis volumiques). Pour palier au problème, il faudrait ajouter une filtre au sélecteur de noeuds lors de l'ajout dans un groupe, pour conserver par exemple que les nœuds sur une peau extérieure.
  
 ===== Verbose pour le contact ===== ===== Verbose pour le contact =====
  
 +J'ai ajouté deux types de verbose pour le contact afin de débugger en version release :
 <code> <code>
     prpCont = ElementProperties (Contact2D|3DElement)     prpCont = ElementProperties (Contact2D|3DElement)
Line 30: Line 45:
 </code> </code>
  
 +Le premier verbose permet d'afficher la matrice de raideur tangente de contact (numérique ou analytique). 
 +Le second verbose permet d'afficher le statut et le type de la projection de contact. 
  
 ===== Visualisation pour le contact ===== ===== Visualisation pour le contact =====
  
-La profondeur maximale est calculée de manière globale pour toutes les hiérarchies de volume finie pour la détection globale de contact. +La profondeur maximale (Tree level dans la fenêtre ContactTool de BWin) est calculée de manière globale pour toutes les hiérarchies de volume frontière pour la détection globale de contact. 
  
-L'affichage d'un outil de contact maillé pour une interaction de contact rigide-déformable a été implémentée.+L'affichage d'un outil de contact maillé pour une interaction de contact rigide-déformable a été implémentée et on peut le visualiser sans problème.
  
 ===== Information sur une interaction de contact ===== ===== Information sur une interaction de contact =====
  
-ContactInteractionInfo+J'ai enrichi l'affichage d'information sur le nombre de nœuds en contact, en contact collant ou glissant sur une interaction de contact, ainsi que le nombre de nœuds dans chaque type de configuration de contact. Ceci peut être utile pour comprendre la raison pour laquelle la procédure de Newton Raphson ne converge pas. 
 + 
 +<code> 
 +ci = Rd|Dd|ScContactInteraction(1) 
 +ci.setShowInformation(True|False) 
 +</code> 
 + 
 +Si besoin, de plus d'informations sur le contact, il suffit d'enrichir la classe ContactInteractionInfo.
  
 ===== Fichiers ajoutés/supprimés ====== ===== Fichiers ajoutés/supprimés ======
commit/2017/11_21.1511287430.txt.gz · Last modified: 2017/11/21 19:03 by wautelet

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki