Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2019:04_26

Differences

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

Link to this comparison view

Next revision
Previous revision
commit:2019:04_26 [2019/04/25 18:06] – created papeleuxcommit:2019:04_26 [2019/04/26 09:38] (current) papeleux
Line 4: Line 4:
  
 ====== SolarPerform ====== ====== SolarPerform ======
 +Ce commit conclus les travaux d'intégration de la loi Chab (Chaboche) de Lagamine dans Metafor. 
 +C'est une loi constitutive Elasto-Visco-Plastique à écrouissage mixte, endommagement de Lemaitre, effets cinématiques cycliques ...
  
 +Le calcul des contraintes se fait dans un référentiel local aux points de gauss (pas de rotation des backstresses).
 +
 +La loi "Chab" dispose de 3 méthode d'introduction de la dépendance des paramètres de la loi à la température : 
 +  * La première IARRH = 0 : consiste en l'interpolation des paramètres ad-hoc en fonction de la Température
 +  * La deuxière IARRH = 1 : est identique à la première à l'exception de la dépendance des paramètres visqueux qui est régie par une loi d'arrhénius
 +  * la troisième IARRH = 2 : toutes les dépendances thermiques sont régie par des lois d'Arrhénius (à simple ou double exposant) 
 +
 +Etant donné la différence fondamentale d'introduction des paramètres entre IARRH= 0/1 et IARRH=2, deux lois matériaux différentes ont été implémentées (la partie calcul est identique, seule l'interface, la lecture des paramètres et la génération des Propriétés matériaux est différente) 
  
 ===== Loi ChabLagMaterial : ===== ===== Loi ChabLagMaterial : =====
-  * +  * Loi Chab avec IARRH = 0 ou 1 
 +  * Dans Lagamine, la dépendance thermique est gérée dans la loi. Tous les paramètres doivent être définis à une série de °T. 
 +  * Cette méthode n'est pas similaire à celle de Metafor. L'introduction de la dépendance thermique se fait alors en 2 temps :  
 +    * une série (NTEMP <= 10) de paramètre TEMP0 -> TEMP9 définissent les températures de référence de Lagamine 
 +    * Les paramètres dépendant de T sont introduits classiquement via définition d'une fonction d'évolution du paramètre à T  
 +      * mat.put(E,      1.0) 
 +      * mat.depend(E,   fctE, Field1D(TO))  
 +    * les tableaux de paramètres sont recalculés sur chaque NTEMP valeur (entre TEMP0 et TEMP9) avant passage à Lagamine 
 +    * L'appel aux méthodes d'intégration de l'endommagement est géré en interne (on fonction du paramètre IDAM) et les fonctions de calcul des contraintes ad-hoc est  
 +    * Définition d'un ''ChabLagGpState'' pour gérér les variables d'hérédité (et les sorties) 
 +    * Sortie de variables interne matériaux :  IF_FATIGUE_DAMAGE / IF_CREEP_DAMAGE / IF_THERMAL_STRAIN 
 ===== Loi Arrh2ChabLagMaterial : ===== ===== Loi Arrh2ChabLagMaterial : =====
-  * +  * Loi d'introduction des paramètres de la loi Lagamine Chab avec IARRH = 2 
 +  * la liste des paramètres étant différente, le mécanisme initID / allowProperty permet une première vérification des paramètres introduits 
 +  * la construction du PRMat est elle aussi particularisée 
 +  * Les routines d'appel à l'interface Lagamine (computeStress, GPState, ...) est commun à ChabLagMaterial (et donc profite de la dérivation) 
 + 
 +===== Lois TMChabLagMaterial  et TmArrh2ChabLagMaterial : ===== 
 +  * Les lois TM... sont les dérivation ThermoMécaniques des lois précitées (la température est une variable recalculée aux points de Gauss & les flux de chaleurs sont calculés) 
 +  * Définition d'un ''TmChabLagGpState'' pour gérér les variables d'hérédité  
 + 
 +===== Tests : ===== 
 +  * le matériau testé et identifié Alloy 230 est défini avec 5 variantes de loi matériau dans le fichier 
 +mtLagamine\tools\Alloy230.py. Les lois sont :  
 +    * Iarrh0BaseIso24 : loi isotherme identifiée à 24°C tel que défini dans le test IARRH=0\1-Base\1_4.Lag 
 +    * Iarrh0AnisoT : loi anisotherme Iarrh=0 tel que défini dans Tests\IARRH=0\2-Anisotherme\OP_TMF.lag 
 +    * Iarrh1AnisoT : loi anisotherme Iarrh=1  tel que défini dans Tests\IARRH=1\1-Anisotherme 
 +    * Iarrh2BaseIso24 : loi isotherme@24°C Iarrh=2 avec endo tel que défini dans Tests\IARRH=2\1-Base-ISO_24_0_8\24_0_8.lag 
 +    * Iarrh2AnisoT : loi anisotherme Iarrh=2  tel que défini dans Tests\IARRH=2\2-Anisotherme-OPTMF_316-816\OP_TMF.lag 
 +    * Iarrh2AnisoTDamage : loi anisotherme  Iarrh=2 avec Endo tel que défini dans Tests\IARRH=2\3-Anisotherme+endo-OPTMF_316-816\OP_TMF.lag 
 +===== Toutes lois : ===== 
 +===== LagamineAPI : ===== 
 +  * La Librairie LagamineAPI a été moultes fois recompilées depuis mon commit précédent au fur et à mesure des modifications et bugFixes de Lagamine Ainsi que du changement d'options de compilation pour assurer une compilation fiable (init des variables locales à 0, option "recursive" pour rendre les routines Lagamine ThreadSafe)  
 +  * => Sous Windows : updatez vos libs avec la dernière version (ftp metafor : /ftp/metafor/bin/VS2015_X64/LibsVS2015_2019-04-25.zip)  
 +ou recompilez les :  
 +    * recup des sources : git  clone de Lagamine & LagamineAPI (sur le gitlab de l'ULiege) 
 +    * IMPORTANT : aller sur ma branche de Lagamine : cd Lagamine / git checkout L.Papeleux 
 +    * générer lagamineAPI : "cd LagamineAPI" / "mkdir build" / "cd build" / "Cmake -C ../CMake/Win64-ifort2017.cmake .." / visualStudio : compiler/installer (linux : make / make install) 
 +  * => Sous Stations : rien à faire (les dernières libs /opt/lagamine-190424 sont déjà le défaut via le lien symbolique /opt/lagamine)
  
 ====== Divers : ====== ====== Divers : ======
-===== fpe : ===== +===== fpe (windows) : ===== 
-  * +  * suppression des masques _EM_INVALID et _EM_DENORMAL des erreurs masquées  
 +  * => -fpe signalera dorénavant les erreurs  _EM_INVALID|_EM_DENORMAL|_EM_ZERODIVIDE|_EM_OVERFLOW|  
 +  * ==> -fpe masque toujours les erreurs  _EM_UNDERFLOW|_EM_INEXACT 
 +  * dès que j'ai du temps, je relance les batteries complètes en -fpe pour voir ce qui reste limite...
  
 +===== FourthOrderTensor3D: =====
 +  * addLocalRefLagamineComplianceTensor : Ajout d'une matrice de raideur analytique matériau LAgamine calculé dans un référentien locale à la MRT (idem addLagamineComplianceTensor avec une gestion de la rotation en plus)
 +===== alloc PMat : =====
 +  * simplification de l'écriture de l'allocation des structures PRMat (data des matériaux) dans le Tbb::ThreadLocalStorage (TLS)
 +===== toolbox.utilities : =====
 +  * Ajout d'une fonction : asciiMatrix2InMemoryDataVector permettant de charger une colonne d'un fichier ascii comme InMemoryDataVector
 +===== toolbox.genTube : =====
 +  * Classe de génération de maillage de tube un peu plus flexible que celle existant précédemment (et au format orienté objet)
 ===== Fichiers ajoutés/supprimés : ===== ===== Fichiers ajoutés/supprimés : =====
 <code> <code>
-Added : +Added : oo_meta/toolbox/genTube.py 
 +Added : oo_nda/mtLagamine/src/Arrh2ChabLagMaterial.h/cpp 
 +Added : oo_nda/mtLagamine/src/ChabLagGpState.h/cpp 
 +Added : oo_nda/mtLagamine/src/ChabLagMaterial.h/cpp 
 +Added : oo_nda/mtLagamine/src/TmArrh2ChabLagMaterial.h/cpp 
 +Added : oo_nda/mtLagamine/src/TmChabLagGpState.h/cpp 
 +Added : oo_nda/mtLagamine/src/TmChabLagMaterial.h/cpp
 Deleted :  Deleted : 
 Moved :  Moved : 
Line 24: Line 88:
 ===== Tests ajoutés/supprimés ===== ===== Tests ajoutés/supprimés =====
 <code> <code>
-Adding: +Adding: oo_nda/mtLagamine/tests/Chabo 
 +Adding: oo_nda/mtLagamine/tests/Chabo/complex 
 +Adding: oo_nda/mtLagamine/tests/Chabo/complex/Iarrh0AnisoTEasChabLagamine.py 
 +Adding: oo_nda/mtLagamine/tests/Chabo/complex/Iarrh0AnisoTSriPrChabLagamine.py 
 +Adding: oo_nda/mtLagamine/tests/Chabo/complex/Iarrh0BaseIso24EasChabLagamine.py 
 +Adding: oo_nda/mtLagamine/tests/Chabo/complex/Iarrh0BaseIso24SriPrChabLagamine.py 
 +Adding: oo_nda/mtLagamine/tests/Chabo/complex/Iarrh1AnisoTEasChabLagamine.py 
 +Adding: oo_nda/mtLagamine/tests/Chabo/complex/Iarrh1AnisoTSriPrChabLagamine.py 
 +Adding: oo_nda/mtLagamine/tests/Chabo/complex/Iarrh2AnisoTDamageEasChabLagamine.py 
 +Adding: oo_nda/mtLagamine/tests/Chabo/complex/Iarrh2AnisoTDamageSriPrChabLagamine.py 
 +Adding: oo_nda/mtLagamine/tests/Chabo/complex/Iarrh2AnisoTEasChabLagamine.py 
 +Adding: oo_nda/mtLagamine/tests/Chabo/complex/Iarrh2AnisoTSriPrChabLagamine.py 
 +Adding: oo_nda/mtLagamine/tests/Chabo/complex/Iarrh2BaseIso24EasChabLagamine.py 
 +Adding: oo_nda/mtLagamine/tests/Chabo/complex/Iarrh2BaseIso24SriPrChabLagamine.py 
 +Adding: oo_nda/mtLagamine/tests/Chabo/Iarrh0AnisoTLagaMeta 
 +oo_nda/mtLagamine/tests/Chabo/Iarrh0AnisoTLagaMeta/sriPrAna.py 
 +oo_nda/mtLagamine/tests/Chabo/Iarrh0AnisoTLagaMeta/sriPrSNum.py 
 +Adding: oo_nda/mtLagamine/tests/Chabo/Iarrh0Base024LagaMeta 
 +oo_nda/mtLagamine/tests/Chabo/Iarrh0Base024LagaMeta/sriPrAna.py 
 +oo_nda/mtLagamine/tests/Chabo/Iarrh0Base024LagaMeta/sriPrSNum.py 
 +Adding: oo_nda/mtLagamine/tests/Chabo/Iarrh1AnisoTLagaMeta 
 +oo_nda/mtLagamine/tests/Chabo/Iarrh1AnisoTLagaMeta/sriPrAna.py 
 +oo_nda/mtLagamine/tests/Chabo/Iarrh1AnisoTLagaMeta/sriPrSNum.py 
 +Adding: oo_nda/mtLagamine/tests/Chabo/Iarrh2AnisoTDamageLagaMeta 
 +oo_nda/mtLagamine/tests/Chabo/Iarrh2AnisoTDamageLagaMeta/EasSAna.py 
 +oo_nda/mtLagamine/tests/Chabo/Iarrh2AnisoTDamageLagaMeta/EasSNum.py 
 +oo_nda/mtLagamine/tests/Chabo/Iarrh2AnisoTDamageLagaMeta/sriPrAna.py 
 +Adding: oo_nda/mtLagamine/tests/Chabo/Iarrh2AnisoTLagaMeta 
 +oo_nda/mtLagamine/tests/Chabo/Iarrh2AnisoTLagaMeta/sriPrAna.py 
 +oo_nda/mtLagamine/tests/Chabo/Iarrh2AnisoTLagaMeta/sriPrSNum.py 
 +Adding: oo_nda/mtLagamine/tests/Chabo/Iarrh2Base024LagaMeta 
 +oo_nda/mtLagamine/tests/Chabo/Iarrh2Base024LagaMeta/sriPrAna.py 
 +oo_nda/mtLagamine/tests/Chabo/Iarrh2Base024LagaMeta/sriPrSNum.py 
 +Adding: oo_nda/mtLagamine/tests/parallel 
 +oo_nda/mtLagamine/tests/parallel/tubeM.py 
 +oo_nda/mtLagamine/tests/parallel/tubeTM.py 
 +Adding: oo_nda/mtLagamine/tests/tube 
 +oo_nda/mtLagamine/tests/tube/tubeM.py 
 +oo_nda/mtLagamine/tests/tube/tubeTM.py
 Deleted :  Deleted : 
 Moved :  Moved : 
commit/2019/04_26.1556208380.txt.gz · Last modified: 2019/04/25 18:06 by papeleux

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki