Projet

Général

Profil

Wiki » Historique » Révision 36

Révision 35 (Gérard Rio, 01/06/2016 22:23) → Révision 36/160 (Gérard Rio, 13/06/2016 19:59)

À 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 ??  

 ------------------------------- 
 version 6.743 

 - amélioration de l'algorithme de contact pour le type 4: le facteur multiplicatif (qui dépend de la pénétration maxi imposée) est lissé au cours des incréments, sous forme d'une moyenne pondérée sur 2 pas -> meilleure stabilité  

 ------------------------------- 
 V 6.744  
 - Dans le cas de l'utilisation d'une UMAT via un dialogue entre Herezh et Herezh ou entre Herezh et Abaqus il faut que le nom de la loi de comportement soit cohérente entre les deux programmes. La version 6.744 intègre un message d'erreur dans le cas où les noms ne sont pas identiques. 

 ------------------------------- 
 V 6.745 
 -    dans le cas de l'utilisation d'une loi externe à Herezh via une Umat (cf. doc), extension du cas 3D actuel à la prise en compte du cas des calculs en axisymétrique.    L'extension est également valable lorsque Herezh sert pour calculer la loi de comportement en tant qu'Umat extérieur. En fait, dans le cas d'un dialogue Herezh--Herezh, il n'y avait pas de pb, par contre dans le cas d'un dialogue Herezh--Abaqus, il y avait un pb à cause du fait qu'Abaqus ne fournit que 4 composantes des tenseurs (les composantes non nulles). La version est pour l'instant en test. Le programme c (ou c++) permettant de relier Herezh avec un programme externe et l'exemple d'une liaison avec Abaqus est également accessible sur le site.  
 - passage à l'utilisation de la librairie boost version 1.58 

 ------------------------------- 
 version 6.746 
 -ajout dans les utilitaires Herezh, de la possibilité de supprimer des éléments à 2 noeuds très proches: au lieu de supprimer les noeuds dans les références, les anciens numéros sont remplacés par les numéros des noeuds restants correspondants 
 - amélioration de la mise à jour des références de noeuds après le soudage de noeuds très proches 
 - amélioration de la mise à jour des références d'éléments après la suppression d'éléments superposés: au lieu de supprimer les éléments dans les références, les anciens numéros sont remplacés par les numéros des noeuds restants correspondants 
 - intégration de la température dans les lois de type UMAT, en interne et en externe. 

 ------------------------------- 
 version 6.747 
 - suite à la demande #98, modification de la signification (et du fonctionnement interne) de la    variable température passée en paramètre. 
 - suite à la demande #94, modification de la signification (et du fonctionnement interne) des variables temps 
 - mise à jour de la documentation au niveau des chargements: on précise que l'on peut utiliser en option une courbe de charge + échelle + temps mini et maxi 

 ------------------------------- 
 version 6.748 
 - ajout de la possibilité de générer automatiquement à la lecture des maillages d'une référence sur les noeuds non référencés par des éléments. cf. la documentation chap: 2.1 
 - correction bugs sur la prise en compte de la viscosité pour les lois Umat (dépendance au temps) 

 ------------------------------- 
 version 6.749 
 - correction de bugs et amélioration de la loi de comportement HYSTERESIS_BULK ... en espérant que tout est ok maintenant ! 

 ------------------------------- 
 version 6.750 
 - introduction d'une nouvelle classe de fonctions 1D quelconques qui peuvent être définies par une expression littérale. L’implantation utilise la bibliothèque muParser. La mise à jour de la documentation présente les différentes possibilités offertes dans l'écriture des expressions littérales. 
 
 ------------------------------- 
 version 6.751 
 - introduction de la résolution d'un problème thermique via des éléments spécifiques thermiques qui ont pour vocation de pouvoir être couplés faiblement et fortement avec des éléments mécaniques. L'ensemble des classes génériques sont implantées et un premier élément "biellette thermique" fonctionne pour un cas simple de condition de température bloquée en statique. 
 La partie post-traitement fonctionne également, en format maple et en post traitement graphique: grandeurs disponibles pour l'instant: température, gradient de température, flux thermique, vitesse de gradient thermique.  
 bon... maintenant il faut étoffer ! La doc sera mise à jour dès que possible. 

 ------------------------------- 
 version 6.752 
 - introduction d'un chargement volumique dit "pseudo-massique" correspondant en fait à un chargement volumique relativement au volume initial. 

 ------------------------------- 
 version    6.753-54  
 - modification et amélioration de la sortie des réactions de contact (mais le travail n'est pas terminé) 
 - introduction du critère plis sur les biellettes. Ce critère vient compléter ce qui existe déjà avec des membranes ce qui permet de coupler des maillages de membranes et de biellettes tout en garantissant que chaque élément satisfera aux critères plis respectifs. 




 






Redmine Appliance - Powered by TurnKey Linux