Projet

Général

Profil

Wiki » Historique » Révision 22

Révision 21 (Gérard Rio, 10/03/2016 17:44) → Révision 22/160 (Gérard Rio, 12/03/2016 08:40)

À partir de la version V 6.719: 
   - Mise en place de la possibilité d'utiliser plusieurs matrices de raideurs et/ou plusieurs méthodes différentes de résolution, dans le cas d'un comportement transitoire non dynamique: algorithme: "non_dynamique" .  
 Fonctionnement: Si la résolution du système linéaire avec la matrice normale échoue, la seconde matrice est alors utilisée. Si la seconde échoue, la troisième est utilisée, etc. La doc sera mise à jour dès que possible, mais en attendant voici un exemple de syntaxe qui permet de déclarer une matrice principale de type Lapack symétrique, et une matrice secondaire bande symétrique classique. 

 para_syteme_lineaire #---------------------------------------------- 
 TYPE_MATRICE BANDE_SYMETRIQUE_LAPACK 
 MATRICE_S_SECONDAIRE_S_    BANDE_SYMETRIQUE     FIN_TYPE_MAT_SECONDAIRES_ 
 TYPE_RESOLUTION_S_SECONDAIRE_S_    CHOLESKY FIN_TYPE_RESOLUTION_SECONDAIRES_ 

 A voir dans les essais futurs ! 

 --------------------------------- 
 Version 6.720 
 - mise en place d'une loi d'hystérésis sur un comportement purement volumique. Dans le cas d'un matériau, il est donc nécessaire d'adjoindre à cette loi, une partie déviatorique. En fait la nouvelle loi : Hysteresis_Bulk est prévue pour représenter le comportement de matériaux poreux type mousses - matériaux architecturés. La doc sera mise à jour dès que possible, en attendant, il est possible d'avoir une information via la constitution interactive d'un fichier info et en choisissant comme loi Hysteresis_Bulk, un exemple de loi que j'ai utilisé pour la mise au point suit: 

 #------------------------------------------ 
 # Nom Materiau      |        Type loi           | 
 #------------------------------------------ 
   hyste_bulk           HYSTERESIS_BULK 
 #------------------------------------------------------------------- 
 # .......    loi_de_comportement d'hysteresis spherique ........        | 
 # para de prager(>=0)    :           mu           : limite de plasticite | 
 #------------------------------------------------------------------- 
    np= 2         mu= 8000       Qzero= 100 avec_parametres_de_reglage_ 
      type_de_resolution_    2  
      cas_kutta_    5   
 #       erreurAbsolue_    1.e-3    erreurRelative_ 1.e-5 
      erreurAbsolue_    1.e-8    erreurRelative_ 1.e-8 
      nbMaxiAppel_    10000 
      nb_iteration_maxi_    20    nb_dichotomie_maxi_    1   
      tolerance_residu_ 1.e-8 tolerance_residu_rel_ 1.e-8#5 
      depassement_Q0_ 1000 
      sortie_post_ 1 
 #       permet_affichage_ 8  
    fin_parametres_reglage_Hysteresis_ 

 --------------------------------- 
 Version 6.722 

 Pour l'ensemble des lois hyperélastiques 3D, on introduit la possibilité de sortie de variable de travail. La doc est mise à jour. 
 Par exemple, il est possible en post-traitement, d'avoir accès à l'intensité du potentiel, sous forme de valeur aux pti, ou sous forme 
 d'isovaleurs. 

 -------------------------------- 
 version 6.724 
 Concernant l'hystérésis 3D: modification des différents algorithmes de gestion des coïncidences et inversion, correction de bugs. 

 Version 6.725 
 Lorsqu'il y a une erreur au niveau de la loi de comportement, il y avait affichage de l'erreur et maintenant il y a également affichage du numéro de l'élément et du point d'intégration où est calculée la loi. 

 ------------------------------- 
 version 6.726 
 - correction d'un bug sur l'énuméré des coque-poutre et plaque qui faisait que les membranes passaient certaine fois sous les procédures des coques ,poutres et plaques, dans le cas des sorties en post-traitement. 
 - optimisation des méthodes d'initialisation du post-traitement, appelées lors d'une sortie au fil du calcul => gain de temps sur les sorties au fil du calcul 
 - introduction de nouvelles grandeurs en sortie concernant le contact => possibilité de visualiser les noeuds en contact, les éléments en contact, les forces de contact aux noeuds esclaves, les forces aux noeuds des facettes maîtres, etc. (cf. les différentes possibilités offertes en interactif après une étude avec contact) 
 - au niveau des mouvements solides initiaux, possibilités d'effectuer avant le calcul, une opération d'homothétie, avec éventuellement des rapports différents suivant x, y et z   

 ------------------------------- 
 version 6.728 
 - Amélioration de la lecture: normalement maintenant on peut avoir un fichier qui s'arrête à la fin d'une ligne de donnée sans ligne vide qui suit. Sortie dans le .reac final de l'ensemble des réactions des ddl bloqués, sous forme de vecteur (et non de composantes) avec en commentaire une référence associée qui globalise tous les noeuds bloqués.  
 - Mise en place de la possibilité d'introduire des chargements sous forme de champ de valeurs scalaires ou vectorielles (suivant les types de chargement). Disponible pour les forces ponctuelles, les pressions, les forces linéiques, suiveuses ou pas.  
 - Correction de petits bugs. 

 Mise à jour de la documentation: ajout des infos pour les lois de type Mooney-Rivlin concernant la mise en donnée de la prise en compte d'un raidissement pour de fortes élongations. 

 ------------------------------- 
 version 6.729 

 Modification du contact: 
 - mise à jour de la documentation au niveau des paramètres de contact,  
 - mise en place d'un cas 4 (TYPE_PENALISATION_PENETRATION     4) qui permet d'ajuster la pénalisation pour satisfaire une pénétration maxi fixée.  
 - petites améliorations du fonctionnement des différents algos au niveau du calcul automatique du facteur de pénalisation en fonction des raideurs matériaux.  

 ------------------------------- 
 version 6.730 

 Correction d'un bug sur le post-traitement de calcul d'erreur et de remonté au contrainte dans le cas d'un maillage quadrangle. 


 ------------------------------- 
 version 6.732 

 - mise en place de la possibilité d'utiliser plusieurs matrices de raideurs dans le cas 
   d'un calcul dynamique implicite (comme c'était déjà le cas en statique). L'objectif visé 
   est d'utiliser un type de matrice principal qui est performant. Si jamais la résolution  
   du système linéaire global échoue, Herezh switch alors sur un type de matrice secondaire 
   éventuellement moins performant mais par exemple plus robuste. Le switch s'effectue sans 
   recalculer les raideurs locales ce qui fait que l'impact en temps de calcul est minimisé. 

 ------------------------------- 
 version 6.733 

 - amélioration de la prise en compte des conditions linéaires lorsque celles-ci concernent 
   soit les ddl d'un noeud, soit le contact solide-déformable par pénalisation. 
   En particulier cela concerne les conditions linéaires de type "Déplacement ou  
   positionnement dans un plan (3D) ou sur une droite (2D)". Les plans et droites pouvant 
   par ailleurs évoluer pendant le calcul. 
   exemple de gain de calcul: 
   ancienne méthode sur un maillage triangles de 346 noeuds, pour un calcul d'équilibre  
   (loi élastique sur membrane) en  
   relaxation dynamique avec 146 conditions linéaires:  
   -> environ 44 minutes sur ma machine (2 incréments, 22000 itérations) 
   nouvelle méthode: -> environ 5 minutes sur ma machine (2 incréments, 22000 itérations) 
   a priori avec les mêmes résultats ... mais reste à confirmer.  

 ----------------------------- 
 Mise à jour de la documentation d'utilisation d'Herezh. En particulier: 
 - au niveau de l'ajout de matrices secondaires (cf. section "Résolution des systèmes linéaires", mots clés MATRICE_S_SECONDAIRE_S_ , FIN_TYPE_MAT_SECONDAIRES_ , TYPE_RESOLUTION_S_SECONDAIRE_S_    , FIN_TYPE_RESOLUTION_SECONDAIRES_) 
 - au niveau des conséquences des conditions linéaires sur les matrices de raideur et de masse (cf. 1) section "Résolution des systèmes linéaires", remarques en fin de section, 2) section "Dynamique", remarques en fin de section, 3) section "Conséquences des CLL sur le stockage matriciel (largeur de bande)" ) 

 ------------------------------- 
 version 6.734 

 Introduction de la mesure de certains temps de calcul. On se reportera à la documentation pour plus de détail, car c'est un peu long à décrire. 
 Un point important est qu'à partir de cette version il est nécessaire d'avoir installé la bibliothèque boost qui est disponible sur toutes les plateformes: linux, window et osx 
 Dans tous les cas il est préférable d'installer "toute la bibliothèque" car dans les futures versions, l'utilisation de nouveaux éléments de la bibliothèque est prévue en particulier pour le multi-streads 
 -> les versions linux et osx sont pour l'instant installées dans la partie test de manière à supprimer les bugs de jeunesse. 

 ------------------------------- 
 version 6.735 

 Correction d'un bug sur le contact en axisymétrique. La surface associée au calcul du facteur de pénalisation était erronée. Correction d'un bug sur la sortie des forces: en axi, seules les directions x et y ont des composantes non nulles 

 ------------------------------- 
 version 6.736 
 Introduction du temps de recherche du contact. Mise à jour de la documentation. 

 ------------------------------- 
 version 6.737 
 Introduction de la sortie systématique des temps cpu globaux dans un fichier spécifique: <nom du .info>_temps.cpu 
 Mise à jour de la documentation 

 ------------------------------- 
 version 6.738-9 
 Correction de bug sur la sortie en fichier des temps cpu. 

 ------------------------------- 
 version 6.740 

 - Modification de la sortie des incréments (sortie au fil du calcul). Pour les grandeurs autres que celles calculées 
   aux points d'intégration, il y avait une sortie pour l'incrément 0. Cette sortie n'était pas cohérente avec les autres, elle a donc été supprimée. Ceci étant, lorsque l'on veut avoir l'état des grandeurs pour t=0 la solution est  
 d'effectuer un premier incrément de temps avec un chargement nul. 
 - Introduction de la possibilité de créer interactivement une condition linéaire de type projection sur plan ou droite, 
 ou de type général. Cette possibilité était jusqu'à maintenant absente dans le menu de création interactif d'un nouveau fichier de commande .info 

 ------------------------------- 
 version 6.741 

 - Versions associées à une gestion complète des dépendances entre les sources -> refonte complète des makefiles. Devrait (?) permettre par la suite de générer rapidement les nouvelles versions Linux (au même titre que celles du système osX) 
 - correction d'un petit bug sur la génération interactive (via la création d'un nouveau .info) de l'entête correspondant à l'algorithme "information", nécessaire par exemple pour générer de nouvelles références. 

 ------------------------------- 
 version 6.742 

 Modification du code pour la sortie interactive de référence: une étonnante différence de fonctionnement entre osX et linux ??  




 




Redmine Appliance - Powered by TurnKey Linux