===== Commit 2008-11-05 ===== * Nettoyage Thermomec ===== Problème ===== * Comme indiqué à mon [[10_07|commit précédent]] la variation des paramètres élastiques n'avait jaais été totalement operationnel et qui plus est, avait été nettoyé un peu brutalement de la part de PP. De plus il était difficile de s'y retrouver de qui fait quoi quand => nettoyage des schémas TM ... ===== Modifs ===== * ** Gestion des mises à jours des valeurs thermiques dans les points de Gauss ** * Creation de la fonction "elementTemplate::fillNodesTemperatures" similaire à "elementTemplate::fillNodesPositions" : remplissage d'un std::vector statique des temperatures nodale (statique, je sais, c'est pas beau on fera mieux après) * VolumeElShcuts : suppression de staggDetect (qui en partie essayait de gérer la remise à jour ou non des temperatures aux ptg) * VolumeElement : suppression des valeurs aux points de Gauss (la totale juste pour stoquer la temperature!!!) Adiabatiques : GPMA_d, GPMA_v, GPTMA_d, GPTMA_v, GPTTA * VolumeElement::fillGPTTValues(Co) : calcul de Jaco & detJ dans GPTT1 * VolumeElement::fillGPTMValues(To) : interpolation de TNodale dans GPTM1 * VolumeElement::fillGPTTValues(To) : interpolation de T & gradT dans GPTT1 * VolumeElement::fillMecanoThermalAnalyticalStiffness : (déplacement de la raideur thermo-élastique dans une fonction propre) * suppression de la macro "#define STAGG_EXTRAPOL 0" (vachement util!!!) * VolumeElement::copyGPValues() : nettoyage de tous les tests de schéma pour différer le transfert des temperatures (tout est dorénavant copié) * VolumeElement::fillInternalForces : gère "proprement les mise à jour des points de Gauss. Certaines operations "fill GP" pourraient être déplacées dans un begin schema / end schema, mais on profite que l'on a déjà remplis Co ou To * GPTM : ajout d'un double appellé "tempRef4Adiabatique" : en EAS, vu que l'on recalcule les forces internes jusqu'à converger les modes, la temperature corrigée est basée sur tempRef4Adiab (ce qui rend d'ailleurs le code + lisible) * ** TmMaterial ** * un matériau contient 2 LocalState (LocalState0 & LocalState1) * Material : ajout de fonctions get/setTemperature 0/1 * LocalState : ajout de fonctions ''get/set'' * modification du calcul des variables dépendantes & des variations de la dépendance sur le pas de temps (DgG / DkK) * Vu la nouvelle architecture : le calcul des contraintes en TM se borne à * mettre à jour (calculer si adiab) les temperatures 0 & 1 dans les LocalState * update prMat * appel à la fonction de calcul des contraintes mecanique !!! * Les switch's dans TmEvpHypoMaterial sont supprimé (Roxane : il te reste à faire le tixhoTm, j'ai pas osé toucher. PP pareil, j'ai pas osé toucher à TmContinuousDamageEvp...) * ** Schéma thermoMec explicite ** * Dans le cadre de sa thèse, PP avait rapidement programmé un schéma TM explicite pour raison de comparaison. C'était en fait un schéma mécanique à temperature variable interne (seul comportement était d'accroitre la temperature au point de Gauss due à la chaleur dissipée plastiquement. Pas de conduction, convection ni quoi que ce soit d'autre) * De commun accord j'ai viré (si on veut le refaire, vaut mieux le faire en mec pur et en dérivant le matériau) * de plus à cause de ce schéma & à l'insu de son plein gré (on m'aurait menti), les temperature nodales extraites étaient les temperatures point de Gauss Mec (et pas les temp nodales). GetMatFields nettoyé * ** Softening ** * Le softening était une modifs aux schémas étagés (dont on n'a pas tout compris avec PP). Il consistait à recalculer (en adoucissement uniquement, pas de durcissement possible) les contraintes (mec) avant le calcul des forces thermiques. * D'après la these L.A. il peut etre intéressant de recalculer les contraites en fin de pas (afin que le GPState corresponde aux déplacement & temperatures en fin de pas même si rien n'est équilibré). J'ai donc modifié la méthode en faisant un endStep au schéma thermique recalculant uniquement les contraintes. * ** Divers ** * Ajout d'un MDR_DTMIN : pas de temps min avant arret définitif de Metafor (mdr pas beau, mais fallait faire vite). Valeur par défaut = 1.0e-10 (as before) * ShapeFunctions : ComputeGradient sur base d'un "const std::vector &To" * battery.py : editpadpro dans le fichier html (+souple) ===== Futur Works - ToDo list ===== * matrice de raideur tangente analytique en full couplé (au moins les 2 blocs Mec-Mec / ther-ther voir ce que ca donne) * matrice de raideur numerique thermique : * copier collé dans Tm... * Finir le split!!! (mais qu'est -ce que je pourrais bien radotter quand ca sera fait !!!) ===== Tests ===== * ** Sabca ** * Ajout d'une série d'extracteurs aux tests sur les monos * Remise en état de la vizu des courbes sur les monos * ** TM ** * Suppression des tests TM explicites * suppression des monosMaterials.tmElastTrac2DEpeEVariableNdyt1/2/3/4/5 * ajout de test multiMonos (pour pas multiplier les tests : 8 monos / tests) * 5 schémas * 2 (Température imposée tmElast tmPlast / temperature calculée : thermoElast thermoPlast) * Elast : E&Nu fixe, E Variable, Nu Variable, E&Nu Variable * Plast : SigEl&H fixe, SigEl Variable, H Variable, SigEl&H Variable * SriPr & EAS * Ajout de StrictionC2dFull (fonctionne avec RCM_METHOD4 pour la thermique) ===== Projet ===== * Up To Date (no modifs) ===== Fichiers ajoutés/supprimés ===== **Code** A R **Test** A oo_meta\apps\monosThermoMeca\thermoElastTrac2DEpeParamVariableNdyt1.py A oo_meta\apps\monosThermoMeca\thermoElastTrac2DEpeParamVariableNdyt2.py A oo_meta\apps\monosThermoMeca\thermoElastTrac2DEpeParamVariableNdyt3.py A oo_meta\apps\monosThermoMeca\thermoElastTrac2DEpeParamVariableNdyt4.py A oo_meta\apps\monosThermoMeca\thermoElastTrac2DEpeParamVariableNdyt5.py A oo_meta\apps\monosThermoMeca\thermoPlastTrac2DEpeParamVariableNdyt1.py A oo_meta\apps\monosThermoMeca\thermoPlastTrac2DEpeParamVariableNdyt2.py A oo_meta\apps\monosThermoMeca\thermoPlastTrac2DEpeParamVariableNdyt3.py A oo_meta\apps\monosThermoMeca\thermoPlastTrac2DEpeParamVariableNdyt4.py A oo_meta\apps\monosThermoMeca\thermoPlastTrac2DEpeParamVariableNdyt5.py A oo_meta\apps\monosThermoMeca\tmElastTrac2DEpeParamVariableNdyt1.py A oo_meta\apps\monosThermoMeca\tmElastTrac2DEpeParamVariableNdyt2.py A oo_meta\apps\monosThermoMeca\tmElastTrac2DEpeParamVariableNdyt3.py A oo_meta\apps\monosThermoMeca\tmElastTrac2DEpeParamVariableNdyt4.py A oo_meta\apps\monosThermoMeca\tmElastTrac2DEpeParamVariableNdyt5.py A oo_meta\apps\monosThermoMeca\tmPlastTrac2DEpeParamVariableNdyt1.py A oo_meta\apps\monosThermoMeca\tmPlastTrac2DEpeParamVariableNdyt2.py A oo_meta\apps\monosThermoMeca\tmPlastTrac2DEpeParamVariableNdyt3.py A oo_meta\apps\monosThermoMeca\tmPlastTrac2DEpeParamVariableNdyt4.py A oo_meta\apps\monosThermoMeca\tmPlastTrac2DEpeParamVariableNdyt5.py D oo_meta\apps\iso\taylor2dExpTm.py D oo_meta\apps\monosMaterials\evpIsoDamageLangseth2dAxiCisExp.py D oo_meta\apps\monosMaterials\evpIsoDamageLangseth2dAxiTracExp.py D oo_meta\apps\monosMaterials\evpIsoDamageLangseth2dEpeCisExp.py D oo_meta\apps\monosMaterials\evpIsoDamageLangseth2dEpeTracExp.py D oo_meta\apps\monosMaterials\evpIsoDamageLangseth3dCisExp.py D oo_meta\apps\monosMaterials\evpIsoDamageLangseth3dTracExp.py D oo_meta\apps\monosMaterials\tmElastTrac2DEpeEVariableNdyt1.py D oo_meta\apps\monosMaterials\tmElastTrac2DEpeEVariableNdyt2.py D oo_meta\apps\monosMaterials\tmElastTrac2DEpeEVariableNdyt3.py D oo_meta\apps\monosMaterials\tmElastTrac2DEpeEVariableNdyt4.py D oo_meta\apps\monosMaterials\tmElastTrac2DEpeEVariableNdyt5.py D oo_meta\apps\monosMaterials\tmEvpIsoFast2dAxiExp.py D oo_meta\apps\monosMaterials\tmEvpIsoFast2dEpeExp.py D oo_meta\apps\monosMaterials\tmEvpIsoFast3dExp.py --- //[[L.Papeleux@ulg.ac.be|Luc PAPELEUX]] 2008/10/07 //