Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2017:12_15

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:12_15 [2017/12/15 11:35] – [Fichiers ajoutés/supprimés] wauteletcommit:2017:12_15 [2017/12/15 11:53] (current) wautelet
Line 1: Line 1:
 ===== Commit 2017-12-15 ====== ===== Commit 2017-12-15 ======
  
-Ce commit est pour ajouter les DualGraphTree et le BottomUpBVHBuilder dans le but de rapatrier mes derniers développements. +Ce commit est pour ajouter les parcours avancées des hiérarchies de volume frontière dans le but de rapatrier mes derniers développements. 
  
-==== Dual Graph Tree ====+==== DdContactInteraction - Double Passe - Boundary Volume Hierarchy ====
  
-Cette structure représente les différentes connectivités dans un wire et une skin. Dans le cas d'un wire, les noeuds sont les courbes et les bords sont les points. Dans le cas d'une skin, les noeuds sont les sides et les bords sont les courbesAinsi, on peut facilement connaitre les voisins directs d'une side ou d'une courbe en parcourant l'arbre. Pour la construction des bordsj'ai implémenté un petit bucket sort afin d'accélérer la recherche des voisins. +Au lieu de passer séquentiellement chaque hiérarchie de volume frontière, d'abord celle du maître avec les points de l'esclave et puis celle de l'esclave avec les points du maîtreIl peut être plus intéressant de parcourir ensemble les deux hiérarchies et répertorier l'ensemble des candidats (segment ou face) pour la recherche du contact local. Cette procédure ne se fait pas en parallèle (recherche globale)mais la recherche locale se fait bel et bien en parallèle via la routine TBB !
  
-==== Bottom Up BVH Builder ====+==== ScContactInteraction - Self Boundary Volume Hierarchy ====
  
-Sur base du graphe dual d'une skin ou d'un wireil est possible de créer une hiérarchie de volume frontière en partant des feuilles de l'arbre vers le sommet de l'arbre, en groupant au fur et à mesure les différentes courbes et sidesCette procédure est indispensable pour le cas de l'auto-contact pour pouvoir tenir compte du critère de courbure locale et d'adjacence.  +Dans le cas de l'auto-contactpuisque chaque point à projeter fait partie de l'hiérarchie de volume frontière, nous avons toujours une sortie triviale, qui consiste en les courbes adjacentes ou les faces adjacentes au pointDonc sous sa forme classique, l'algorithme produit toujours une sortie puisque le point appartient toujours dans les boites imbriquées les unes dans les autres. Ainsi, il pourrait être intéressant de parcourir cette hiérarchie de volume frontière sous forme globale pour tenir compte d'un critère de courbure et d'un critère d'adjacence. Ainsisi on a une surface plane initialement, on n'a pas de recherche de contact dès le test sur le sommet de l'hiérarchie de volume frontière (car pas de courbure dedans)et cela tant que l'on a pas la présence d'un pli (post-flambement d'un longeron). Le critère d'adjacence permet justement d'éviter des tests triviaux pour l'intersection des boites. 
- +
-<note important>Si le wire ou la skin sont discontinue, une erreur est signalée ! En effet, on suppose que le wire ou la skin sont simplement connectées. Il est possible d'adapter la procédure de construction des arbres de volume frontière sur des cas disconnectésen modifiant la procédure de regroupement des supercoubes et supersurfaces disjointes ! </note>+
  
 ==== Tests ==== ==== Tests ====
Line 19: Line 17:
 Pour pouvoir utiliser cette fonctionnalité, il suffit de générer un BVHOptions et le transmettre à l'interaction de contact :  Pour pouvoir utiliser cette fonctionnalité, il suffit de générer un BVHOptions et le transmettre à l'interaction de contact : 
 <code> <code>
-ci = Rd|Sc|Dd|FdRd|ContactInteraction(1)+ci = Sc|DdContactInteraction(1)
 option = BVHOptions() option = BVHOptions()
-option.setBottomUp(True|False) +option.setUseGlobalSearch(True|False)
-option.setVerbose(True|False) +
-option.setVerboseTimer(True|False) +
-option.setDebug(True|False) +
-option.setLeafSize(N) et N est un entier positif. +
-option.setUseSelfBVH(True|False)+
 ci.setBVHOptions(option)  ci.setBVHOptions(option) 
 </code> </code>
 +
 +<note important> La recherche globale n'est pas fonctionnelle si on se trouve dans le cas d'un contact déformable-déformable en simple passe car on a qu'une seule hiérarchie de volume frontière. Dans le cas de l'auto-contact,
 + la recherche globale est activée uniquement si on utilise une hiérarchie de volume frontière de type auto-contact (Volume Frontière + Critère de courbure + Critère d'adjacence) </note>
  
 ==== Références ==== ==== Références ====
Line 53: Line 49:
  
 <code> <code>
 +[a]:oo_meta\mtContact\tests\threeBeamsRingContactTestBVHBottomUpGlobalSearch.py
 +[a]:oo_meta\mtContact\tests\threeBeamsRingContactTestBVHBottomUpGlobalSearch.tsc
 +[a]:oo_meta\mtContact\tests\threeBeamsRingContactTestBVHGlobalSearch.py
 +[a]:oo_meta\mtContact\tests\threeBeamsRingContactTestBVHGlobalSearch.tsc
 +[a]:oo_meta\mtContact\tests\threePlatesCylinderContactTestBVHBottomUpGlobalSearch.py
 +[a]:oo_meta\mtContact\tests\threePlatesCylinderContactTestBVHBottomUpGlobalSearch.tsc
 +[a]:oo_meta\mtContact\tests\threePlatesCylinderContactTestBVHGlobalSearch.py
 +[a]:oo_meta\mtContact\tests\threePlatesCylinderContactTestBVHGlobalSearch.tsc
 +[a]:oo_meta\mtContact\tests\torusCylinderContactTestBVHBottomUpGlobalSearch.py
 +[a]:oo_meta\mtContact\tests\torusCylinderContactTestBVHBottomUpGlobalSearch.tsc
 +[a]:oo_meta\mtContact\tests\torusCylinderContactTestBVHGlobalSearch.py
 +[a]:oo_meta\mtContact\tests\torusCylinderContactTestBVHGlobalSearch.tsc
 +[a]:oo_meta\mtContact\tests\twoToriContactTestBVHBottomUpGlobalSearch.py
 +[a]:oo_meta\mtContact\tests\twoToriContactTestBVHBottomUpGlobalSearch.tsc
 +[a]:oo_meta\mtContact\tests\twoToriContactTestBVHGlobalSearch.py
 +[a]:oo_meta\mtContact\tests\twoToriContactTestBVHGlobalSearch.tsc
 [a]:oo_nda\meca0464\tests\threeRingsContactTestBVHBottomUpGlobalSearch.py [a]:oo_nda\meca0464\tests\threeRingsContactTestBVHBottomUpGlobalSearch.py
 [a]:oo_nda\meca0464\tests\threeRingsContactTestBVHBottomUpGlobalSearch.tsc [a]:oo_nda\meca0464\tests\threeRingsContactTestBVHBottomUpGlobalSearch.tsc
commit/2017/12_15.1513334150.txt.gz · Last modified: 2017/12/15 11:35 by wautelet

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki