Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2019:08_13

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:2019:08_13 [2019/08/14 21:42] wauteletcommit:2019:08_13 [2019/08/14 22:56] (current) – [Commit 2019-08-13] wautelet
Line 1: Line 1:
 ===== Commit 2019-08-13 ====== ===== Commit 2019-08-13 ======
  
-Ce commit a pour but d'interfacer directement l'algorithme du Line Search Structural dans le jeux de données python. Dès lors, nous ne passerons plus par l'IterationManager pour pouvoir l'activer dans notre jeux de données.+Ce commit a pour but d'interfacer directement l'algorithme du Line Search Structural dans le jeux de données python. Dès lors, nous ne passerons plus par l'IterationManager pour pouvoir l'activer dans nos jeux de données.
    
 <note important>Il y a un changement majeur dans l'interface du Line Search Structural ! </note> <note important>Il y a un changement majeur dans l'interface du Line Search Structural ! </note>
 +
 +Pour mon prochain commit, il y aura une nouvelle implémentation du Line Search Structural plus performante que celle actuelle.
 ==== Structural Line Search - Refactoring ==== ==== Structural Line Search - Refactoring ====
  
-=== FullStepStructuralLineSearch ===+J'ai placé les fonctions relatives à l'algorithme du Line Search Structural de l'IterationManager vers une nouvelle arborescence d'objets. La classe d'interface pure virtuelle est StructuralLineSearchBase qui permet de communiquer entre l'IterationManager et l'algorithme du Line Search Structural.
  
-=== StandardStructuralLineSearch ===+=== FullStepStructuralLineSearch (Derive de StructuralLineSearchBase) ===
  
 +Cette méthode correspond à la méthode classique de Newton Raphson où la taille du pas selon la direction de recherche est de 1.
 +
 +<code>
 +mim = metafor.getIterationManager()
 +lineSearch = FullStepStructuralLineSearch(mim)
 +lineSearch.setVerbose(boolParameter|default value = False)
 +lineSearch.setDebug(boolParameter|default value = False)
 +mim.setStructuralLineSearch(lineSearch)
 +</code>
 +
 +<note important>Cette méthode est celle utilisée par défaut.</note> 
 +
 +=== StandardStructuralLineSearch (Derive de StructuralLineSearch = une classe virtuelle) ===
 +
 +Cette méthode correspond au Line Search Structural programmée par Ludovic Noëls. Je remets ici les différents paramètres d'utilisation de l'algorithme.
 +
 +<code>
 +mim = metafor.getIterationManager()
 +lineSearch = StandardStructuralLineSearch(mim)
 +lineSearch.setVerbose(boolParameter|default value = False)
 +lineSearch.setDebug(boolParameter|default value = False)
 +lineSearch.setMaxNbOfLineSearchIterations(integerParameter|default value = 10);
 +lineSearch.setLineSearchTolerance1(doubleParameter|default value = 1.0);
 +lineSearch.setLineSearchTolerance2(doubleParameter|default value = 1.0E-8);
 +lineSearch.setAbsMaxLineSearchCoefficient(doubleParameter|default value = 10.0);
 +lineSearch.setAbsMinLineSearchCoefficient(doubleParameter|default value = 0.0);
 +mim.setStructuralLineSearch(lineSearch)
 +</code>
 +
 +Désormais, il est possible de normaliser le résidu du Line Search Structural via la commande suivante :
 +
 +<code>
 +lineSearch.setUseNormalisedCriterion(boolParameter|default value = False)
 +</code>
  
 +On divise tout simplement les résidus du Line Search Structural par la valeur obtenue à l'itération numéro 0. La tolérance 1 dans ce cas de figure est relative et non plus absolue.
  
 ==== Jeux de données - Structural Line Search ==== ==== Jeux de données - Structural Line Search ====
Line 20: Line 57:
 J'ai regroupé dans cette section différentes modifications du code source. J'ai regroupé dans cette section différentes modifications du code source.
  
-=== MiscValueExtractor ===+  * MiscValueExtractor 
  
 Suite au refactoring du Line Search, j'ai remis à plat les grandeurs archivées pour le Line Search Structural mécanique et thermique via le MiscValueExtractor(). J'en ai profité pour sortir aussi les nombres d'itération mécanique ou thermique avec ou sans mise à jour de la matrice de raideur tangente. Suite au refactoring du Line Search, j'ai remis à plat les grandeurs archivées pour le Line Search Structural mécanique et thermique via le MiscValueExtractor(). J'en ai profité pour sortir aussi les nombres d'itération mécanique ou thermique avec ou sans mise à jour de la matrice de raideur tangente.
Line 32: Line 69:
 Les cas-tests avec le Line Search Structural ont été adapté de manière à conserver les valeurs archivées avant le commit. Les cas-tests avec le Line Search Structural ont été adapté de manière à conserver les valeurs archivées avant le commit.
  
-=== Cast Test - nastranTriSkinContactTool.py ===+  * Cast Test - nastranTriSkinContactTool.py
  
 Pour diminuer l'utilisation du temps CPU lors de la recherche du contact, j'ai activé l'utilisation des arbres (BoundaryVolumeHierarchy).  Pour diminuer l'utilisation du temps CPU lors de la recherche du contact, j'ai activé l'utilisation des arbres (BoundaryVolumeHierarchy). 
  
-=== VectorToScalarOperator ===+  * VectorToScalarOperator 
  
 J'ai ajouté de nouveaux opérateurs pour l'archivage des grandeurs au cours d'un calcul :  J'ai ajouté de nouveaux opérateurs pour l'archivage des grandeurs au cours d'un calcul : 
Line 76: Line 113:
 </code> </code>
  
-=== QuadSide ===+  * QuadSide 
  
 J'ai enrichi le message d'erreur et le message de warning lors l’exécution de la fonction giveCornerEdgeProjection(). J'ai enrichi le message d'erreur et le message de warning lors l’exécution de la fonction giveCornerEdgeProjection().
 +
 ===== Fichiers ajoutés/supprimés ====== ===== Fichiers ajoutés/supprimés ======
  
commit/2019/08_13.1565811767.txt.gz · Last modified: 2019/08/14 21:42 by wautelet

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki