* fichier : soudage.dgibi ************************************************************************ ************************************************************************ *---------------------------------------------------- * calcul simplifie du depot d'un cordon de soudure : * on realise litteralement des depots de matiere chaude * le long d 'un chanfrein. Le materiau est de l inox. * * ce jeu de donnees comprend notamment : * une boucle de construction du maillage 3D (plaque+depots) * et d attribution des modeles * une etude sur le choix des modeles plastiques et viscoplastiques * (avec VISK2 disponible en 1/1/1999) * une procedure pour realiser les depots successifs : construction * de la table pour PASAPAS avec mise a jour des modeles, chargements * et conditions aux limites. Un temps de latence de 2s est arbitrairement * observe. * une procedure pour le refroidissement apres depot : idem * une procedure pour le trace des temperatures et du Von Mises des * contraintes a chaque depot * * le calcul thermo-mecanique couple consiste en la reactualisation * des caracteristiques materiaux a chaque pas de temps * les aspects thermo-metallurgiques ne sont pas pris en compte * au 1/1/1999 * le trace final est realise en animation * * Cet exemple comprend un mode mise au point -> misopoin = vrai ; * Le calcul complet est tres gourmand en ressources informatiques *----------------------------------------------------------------- *----------------------------------------------------------------- * Simplified calculation of welding : * The deposits of hot material ate readily simulated, * along a V-notched plate. Austenitic steel is concerned. * * This data file includes : * a loop which enables the 3D meshing (plate+deposits) * and set the models * a study on the opportunity to use either elastoplastic or viscoplastic * models (particularly VISK2 available 1/1/199) * a procedure which enables the stepwise deposits : defines the TABLE object * for PASAPAS, and updates models, loadings and boundary conditions. * It is arbitrary chosen a duration of 2s for the deposit. * a procedure to compute the cooling down : idem * a procedure which shows the thermal and Von Mises fields after each deposit * * The thermo-mechanical coupling consists of the material characteristics * updating. The thermo-metallurgical aspects are not taken into account * (1/1/1999). * Finally an animated view of the calculation is presented. * * This example includes a tuning mode -> misopoin = vrai ; * The complete calculation is quite a heavy computer job *------------------------------------------------------------------ tit_ref = 'soudure / ' ; mo_mode = parf ; misopoin = vrai ; si misopoin ; sinon ; finsi ; graph = 'N' ; monop=faux; *------------------------------------------------------------------ * parametres *------------------------------------------------------------------ * epaisseur de la tranche elementaire epais_z = 0.01 ; * nombre de tranches (hormis 2 tranches de bord) si misopoin ; n_tra1 = 10 ; sinon ; n_tra1 = 200 ; finsi ; * temperature des depots (C) tempdepo = 1500. ; * duree du depot (s) duredepo = 2. ; * coefficient pour les traces t_coef = table ; t_coef . defo1 = 2. ; *------------------------------------------------------------------ * CARACTÉRISTIQUES MATERIAU * MATERIAL CHARACTERITICS *------------------------------------------------------------------ * evolution des caracteristiques avec la temperature ; * TABLE POUR LA VISUALISATION TAB1 = TABLE; TAB1.1 = 'MARQ LOSA'; * capacite volumique 4491.6 4590.4 4696.8 4907.5 4950. 4990. 5043. 5054.2 5071.5 5088. 5088.; * conversion en USI lscapa = lscapa * 1.e3; *dess evlcapa titre 'Capacaité volumique' nclk TAB1 ; * conductivite 27.3 28.1 29.9 32. 34. 49. 49.; lscondu = lscondu ; *dess evlcond titre 'Conductivite' nclk TAB1 ; * coefficient de convection avec l'exterieur he1 = 30. ; * module d'YOUNG 700. 750. 1200. 1350. 3000. ; 135. 50. 10. 1. ) * 1.d9 ; *dess evlyoun titre 'Module d Young' nclk TAB1 GRIL; * coefficient d ecrouissage * coefficient de POISSON * 1450. 3000. ; *dess evlnu titre 'Coefficient de Poisson' nclk TAB1 GRIL; * limite élastique 700. 800. 900. 1000. 1100. 1200. 1400. 1450. 3000. ; 116. 106. 88. 60. 26. 10. 1. 1. 1.; lsigy = lsigy * 1.d6 ; *dess evly titre 'Limite elastique' nclk TAB1 GRIL; * * module visqueux * coefficient eta * coefficient n * dilatation thermique moyenne reference 20° lalpha1 = lalpha1 * 1.d-6 ; *dess evalpha1 titre 'Alpha' TAB1 GRIL nclk ; *----------------------------------------------------------------- * procedure attribution modele * procedure to set the models *----------------------------------------------------------------- debproc at_moma mail_u*maillage ; * definit le modele thermomecanique si (ega mo_mode cine) ; mo1 = (modele mail_u mecanique elastique isotrope plastique cinematique cons meca) et (modele mail_u thermique isotrope cons ther) ; 'YOUN' evlyoun 'NU' evlnu 'SIGY' evly 'H' evlh 'ALPH' evalpha1 'TREF' 20. 'TALP' 20.) 'C' evlcapa 'K' evlcond 'RHO' 1.) ; finsi ; si (ega mo_mode parf) ; mo1 = (modele mail_u mecanique elastique isotrope plastique parfait cons meca) et (modele mail_u thermique isotrope cons ther) ; 'YOUN' evlyoun 'NU' evlnu 'SIGY' evly 'ALPH' evalpha1 'TREF' 20. 'TALP' 20.) 'C' evlcapa 'K' evlcond 'RHO' 1.) ; finsi ; si (ega mo_mode visk2) ; mo1 = (modele mail_u mecanique elastique isotrope viscoplastique visk2 cons meca) et (modele mail_u thermique isotrope cons ther) ; 'YOUN' evlyoun 'NU' evlnu 'SIGY' evly 'H' evlh 'ALPH' evalpha1 'TREF' 20. 'TALP' 20. 'HVIS' evlhvis 'ETA' ev_eta 'N' ev_n2 ) 'C' evlcapa 'K' evlcond 'RHO' 1.) ; finsi ; si (ega mo_mode viscp) ; mo1 = (modele mail_u mecanique elastique isotrope viscoplastique parfait cons meca) et (modele mail_u thermique isotrope cons ther) ; 'YOUN' evlyoun 'NU' evlnu 'SIGY' evly 'ALPH' evalpha1 'TREF' 20. 'TALP' 20. 'K' 2.d8 'N' 1.) finsi ; * finproc mo1 ma1 ; *----------------------------------------------------------------- * tranche maillage elementaire * plate slice mesh *------------------------------------------------------------------ * densites utilisées si misopoin ; d0 = 5.d-3 ; d1 = d0 ; d2 = d0 ; d22 = d0 ; d3 = 20.d-3 ; d4 = d3 ; d5 = d3 ; sinon ; * coeff Arnaud si faux ; d0 = 0.5d-3 ; d1 = 0.6d-3 ; d2 = 1.d-3 ; d22 = 2.d-3 ; d3 = 5.d-3 ; d4 = 8.d-3 ; d5 = 8.d-3 ; finsi ; d0 = 0.5d-3 ; d1 = 0.6d-3 ; d2 = 1.d-3 ; d22 = 5.d-3 ; d3 = 20.d-3 ; d4 = 20.d-3 ; d5 = 20.d-3 ; finsi ; * points * chanfrein pchfr0 = 0. 6.d-3 ; * comparaison FRAMATOME p_c = pchfr1 ; p_g = 11d-3 0. ; p_f = 11d-3 30.d-3 ; p_tc1 = 6.5d-3 5d-3 ; * attention contrairement a Arnaud la penetration/deformation * surface inferieure du chanfrein n'est pas prise en compte * la passe initiale n'est pas calculee * le premier depot correspond a H(1) - H(initiale) ou H est la hauteur * bain -- depot de la premiere passe profondeur 26.1 * bain -- depot de la seconde passe profondeur 25.7 * notation Arnaud modifiees p2b3 = p1b2 ; p2b4 = p1b1 ; * bain -- depot de la troisieme passe profondeur 24.75 * notation Arnaud modifiees p3b3 = p2b2 ; p3b4 = p2b1 ; * bain -- depot de la quatrieme passe profondeur 23.25 p4b3 = p3b2 ; p4b4 = p3b1 ; * reste de la plaque * CONTOURS l1b1 = d p1b2 p1b1 ; l1b2 = d p1b1 p1b4 ; l_l1b2 = l1b2 ; l1b3 = c p1b4 pchfr0 p1b2 ; l1b4 = d p1b4 ori ; l_l1b4 = l1b4 ; l1b5 = d ori p1b3 ; l1b6 = d p1b3 p1b2 ; l2b1 = d p2b2 p2b1 ; l2b2 = d p2b1 p2b4 ; l_l2b2 = l2b2 ; l2b4 = c p2b3 pchfr0 p2b2 ; l3b1 = d p3b2 p3b1 ; l3b2 = d p3b1 p3b4 ; l_l3b2 = l3b2 ; l3b4 = d p3b3 p3b2 ; *l3b5 = d p1b3 p3b3 ; l3b5 = d p1b3 ppl3b3 ; l3b6 = d ppl3b3 p3b2 ; l4b1 = d p4b2 p4b1 ; l4b2 = d p4b1 p4b4 ; l_l4b2 = l4b2 ; l4b4 = d p4b3 p4b2 ; lchfr1 = d pchfr1 pchfr3 d pchfr2 ; *lchfr2 = c pchfr2 pchfr0 p3b2 ; lchfr3 = c p3b2 pchfr0 p1b2 ; lchfr4 = c p2b2 pchfr0 p1b2 ; lpl1 = d ppl3b3 ppl2 ; lpl2 = d ppl2 ppl1 ; lpl3 = d ppl1 pchfr1 ; lpl4 = d ppl2 ppl3 ; lpl5 = d ppl3 ppl4 ; lpl6 = d ppl4 ppl1 ; lpl7 = d ppl6 ppl5 ; lpl8 = d ppl6 ppl7 ; lpl9 = d ppl7 ppl8 ; lpl10 = d ppl8 ppl5 ; lpl11 = d ppl3 ppl6 ; lpl12 = d ppl5 ppl4 ; lplbas = lpl8 et lpl11 et lpl4 et lpl1 et l3b5 et l1b5 ; * ligne horizontale lhoriz = l3b5 et l1b5 et lpl1 et lpl4 et lpl11 et lpl8 ; * SURFACES sbain1 = sdepot1 et stalon1 ; *spl1 = surf (l3b5 et l3b4 et lchfr3 et (inve l1b6)) ; *spl3 = surf ( (inve l3b4) et lpl1 et lpl2 et lpl3 et lchfr1 et * lchfr2 ) ; * evaluation du maillage * surface complete sur_t = sdepot4 et sdepot3 et sdepot2 et sbain1 et sur0 ; sur1 = sbain1 et sur0 ; (nbelem sur_t) ' elements' ; p_tc1 = point sur_t proc p_tc1 ; p_f = point sur_t proc p_f ; p_g = point sur_t proc p_g ; *trac (sur_t) ; * surface complete sans le metal depose sur2 = stalon1 et sur0 ; *trac sur2 titr 'sur2' ; * surface sans le metal liquide sur3 = sur0 ; *trac sur3 titr 'sur3' ; * * contours pour la convection *trac ctr1b nclk; *trac ctr1d nclk; *----------------- VOLUMES --------------------------------- t_oeil = table ; t_oeil . 1 = -1.3322 2.2028 -4.3278 ; t_oeil . 2 = -4.0225 2.1934 -1.0511 ; t_oeil . 3 = -.38324 .52515 -2.3239 ; t_oeil . 4 = -1.6814 1.8311 -1.5466 ; e_z = 0. 0. epais_z ; * vbain1 = vtalon1 et vdepot1 ; * volume complet vsur_t = vdepot4 et vdepot3 et vdepot2 et vbain1 et vsur0 ; vsur1 = vbain1 et vsur0 ; (nbelem vsur_t) ' elements' ; *trac (vsur_t) ; * volume complet sans le metal depose vsur2 = vtalon1 et vsur0 ; *trac vsur2 titr 'vsur2' ; * volume sans le metal liquide vsur3 = vsur0 ; *trac vsur3 titr 'vsur3' ; * surfaces pour la convection et conditions aux limites * l2b4 = l2b4 trans 1 e_z ; l3b4 = l3b4 trans 1 e_z ; l4b4 = l4b4 trans 1 e_z ; * l1b1 = l1b1 trans 1 e_z ; l2b1 = l2b1 trans 1 e_z ; l3b1 = l3b1 trans 1 e_z ; l4b1 = l4b1 trans 1 e_z ; * l1b4 = l1b4 trans 1 e_z ; l1b2 = l1b2 trans 1 e_z ; l2b2 = l2b2 trans 1 e_z ; l3b2 = l3b2 trans 1 e_z ; * l1b3 = l1b3 trans 1 e_z ; l2b3 = l2b3 trans 1 e_z ; l3b3 = l3b3 trans 1 e_z ; l4b3 = l4b3 trans 1 e_z ; * l4b2 = l4b2 trans 1 e_z ; * * *------------------------------------------------------------------ * table chanfrein * maillage total * global meshing *------------------------------------------------------------------ chanfrei = table ; chanfrei . tranches = table ; chanfrei . tranches . initial = table ; chanfrei . tranches . initial . mail = vsur2 ; chanfrei . tranches . initial . modele chanfrei . tranches . initial . caracteristiques = at_moma chanfrei . tranches . initial . mail ; * chanfrei . maillage = chanfrei . tranches . initial . mail ; chanfrei . modele = chanfrei . tranches . initial . modele ; chanfrei . caracteristiques = chanfrei . tranches . initial . caracteristiques ; s1b4 = l1b4 ; * repeter b_mail n_tra1 ; ve_tra = &b_mail * e_z ; ovsur2 ovdep ol1b3 ol1b2 ol1b4 = vsur2 vdepot1 l1b3 l1b2 l1b4 plus ve_tra ; * chanfrei . tranches . &b_mail = table ; chanfrei . tranches . &b_mail . mail = ovsur2 ; chanfrei . tranches . &b_mail . modele chanfrei . tranches . &b_mail . caracteristiques = at_moma chanfrei . tranches . &b_mail . mail ; * chanfrei . maillage = chanfrei . maillage et chanfrei . tranches . &b_mail . mail ; chanfrei . modele = chanfrei . modele et chanfrei . tranches . &b_mail . modele ; chanfrei . caracteristiques = chanfrei . caracteristiques et chanfrei . tranches . &b_mail . caracteristiques ; s1b4 = s1b4 et ol1b4 ; * chanfrei . tranches . &b_mail . depots = table ; chanfrei . tranches . &b_mail . depots . 1 = ovdep ; chanfrei . tranches . &b_mail . interfaces = table ; chanfrei . tranches . &b_mail . interfaces . 1 = ol1b3 ; chanfrei . tranches . &b_mail . surf_bloc_meca = ol1b2 ; chanfrei . tranches . &b_mail . blocages_mecaniques = * si (&b_mail > 1) ; et chanfrei . tranches . (&b_mail-1) . depots . 1) ; finsi ; * fin b_mail ; * chanfrei . tranches . final = table ; chanfrei . tranches . final . mail = ovsur2 ; chanfrei . tranches . final . modele chanfrei . tranches . final . caracteristiques = at_moma chanfrei . tranches . final . mail ; * chanfrei . maillage = chanfrei . maillage et chanfrei . tranches . final . mail ; chanfrei . modele = chanfrei . modele et chanfrei . tranches . final . modele ; chanfrei . caracteristiques = chanfrei . caracteristiques et chanfrei . tranches . final . caracteristiques ; chanfrei . surf_bloc_meca = s1b4 ; *+++++++++++++ titre (et tit_ref ' / maillage initial / noeuds = ') si (neg graph 'N') ; finsi ; *------------------------------------------------------------------ * procedure de depot * deposit procedure *------------------------------------------------------------------ debproc depocord tstru*table t_oeil*table t_coef*table ; *----------------------------- * realise les depots elementaires * achieves elementary deposits * en entree : table tstru * input : table tstru * 'MAILLAGE' : maillage courant / instant global mesh * 'TRANCHES', TABLE des donnees, indicee par * 'INITIAL', 1...N,'FINAL' de sous indices * 'DEPOTS', TABLE * 'INTERFACES', TABLE * 'SURF_BLOC_MECA', MAILLAGE * 'INTERFACES', TABLE * 'BLOCAGES_MECANIQUES', RIGIDITE * * 'TEMPERATURES', CHPOINT * 'DEPLACEMENTS', CHPOINT * 'CONTRAINTES', MCHAML * 'DEFORMATIONS_INELASTIQUES', MCHAML * 'VARIABLES_INTERNES', MCHAML * 'BLOCAGES_MECANIQUES', RIGIDITE * 'SURF_BLOC_MECA', MAILLAGE * 'DEPOT_INI', ENTIER indice du depot initial / initial deposit * 'DEPOT_FIN', ENTIER indice du depot final / final deposit * 'ILFOSOVE', LOGIQUE sauvegarde ou non / to save or not * 'ILFOTRACE', LOGIQUE dessine ou non / to picture or not * 'DELTA_T', FLOTTANT pas de temps / time step * en sortie : table tstru * output : table tstru * 'SAUVEGARDE', TABLE des sauvegardes, indicee par un entier, * de sous-indices * 'TITRE', TEXTE * 'MAILLAGE', MAILLAGE * 'TEMPS', LISTREEL chronologie du depot / deposit chronology * 'MODELE', MMODEL * 'CARACTERISTIQUES', MCHAML * 'TEMPERATURES', TABLE * 'DEPLACEMENTS', TABLE * 'CONTRAINTES', TABLE * 'DEFORMATIONS_INELASTIQUES', TABLE * 'VARIABLES_INTERNES', TABLE * 'TEMPS', LISTREEL chronologie de tout le calcul / global chronology *----------------------- nd1 = tstru . depot_ini ; nd2 = tstru . depot_fin ; si (nd2 < nd1) ; quitter depocord ; finsi ; si (non (existe tstru temps)) ; finsi ; *++++++++++ repeter b_depo (nd2 - nd1 + 1) ; ndk = nd1 + &b_depo - 1 ; mess ' numero depot : ' ndk ; * initialise le depot * initializes deposit (changer tstru . maillage poi1) ; mail_u1 ; *mail_u = diff (changer tstru . tranches . ndk . depots . 1 poi1) * (changer tstru . tranches . ndk . interfaces . 1 poi1) ; mod_u mat_u = at_moma tstru . tranches . ndk . depots . 1 ; *+++++++++++ * chargement * loadings t_ini = 0. ; sinon ; finsi ; * tstru . tranches . ndk . depots . 1) ; tstru . tranches . ndk . surf_bloc_meca) ; *+++++++++++ * prepare la table pour pasapas * PASAPAS table tdep . modele = tstru . modele et mod_u et mod_conv ; tdep . caracteristiques = tstru . caracteristiques et mat_u et mat_conv ; tdep . blocages_thermiques = blte1 ; tdep . blocages_mecaniques = tstru . blocages_mecaniques et tstru . tranches . ndk . blocages_mecaniques ; tdep . chargement = cha_dep et cha_conv ; tdep . temps_calcules = lt_dep ; tdep . procedure_thermique = DUPONT ; tdep . temps = table ; tdep . temperatures = table ; tdep . temperatures . 0 = tstru . temperatures et chtedepo ; tdep . deplacements = table ; tdep . deplacements . 0 = tstru . deplacements + chdedepo ; tdep . contraintes = table ; tdep . contraintes . 0 = tstru . contraintes et chsmdepo ; tdep . deformations_inelastiques = table ; tdep . deformations_inelastiques . 0 = chdfdepo et tstru . deformations_inelastiques ; tdep . variables_internes = table ; tdep . variables_internes . 0 = chvidepo et tstru . variables_internes ; TMASAU=table; tdep . 'MES_SAUVEGARDES'=TMASAU; TMASAU .'DEFTO'=VRAI; TMASAU .'DEFIN'=VRAI; *+++++++++++ * execute * run pasapas tdep ; *list (maxi tdep . temperatures . 2 sans (mots lx)) ; *list (mini tdep . temperatures . 2 sans (mots lx)) ; *mailtra = extr tdep . modele mail ; *trac t_oeil . 2 cach (redu tdep . temperatures . 1 mailtra) mailtra ; *+++++++++++ * actualise tstru * update tstru tstru . temps = tstru . temps et lt_dep ; lt1 = lt1 - 1 ; tstru . modele = tstru . modele et mod_u ; tstru . caracteristiques = tstru . caracteristiques et mat_u; tstru . maillage = tstru . maillage et tstru . tranches . ndk . depots . 1 ; tstru . surf_bloc_meca = tstru . surf_bloc_meca et tstru . tranches . ndk . surf_bloc_meca ; tstru . blocages_mecaniques = tdep . blocages_mecaniques ; tstru . temperatures = tdep . temperatures . lt1 ; si vrai ; tstru . deplacements = copie tdep . deplacements . lt1 ; tstru . contraintes = copie tdep . contraintes . lt1 ; tstru . deformations_inelastiques = copie tdep . deformations_inelastiques . lt1 ; tstru . variables_internes = copie tdep . variables_internes . lt1 ; finsi ; * si tstru . ilfosove ; si (non (existe tstru sauvegarde)) ; tstru . sauvegarde = table ; finsi ; tsauv = tstru . sauvegarde ; tsauv . nds = table ; tsauv . nds . titre = texte 'depot tranche ' ndk ; tsauv . nds . maillage = tstru . maillage ; tsauv . nds . temps = tdep . temps ; tsauv . nds . modele = tdep . modele ; tsauv . nds . temperatures = tdep . temperatures ; tsauv . nds . deplacements = tdep . deplacements ; tsauv . nds . contraintes = tdep . contraintes ; tsauv . nds . variables_internes = tdep . variables_internes ; tsauv . nds . deformations_inelastiques = tdep . deformations_inelastiques ; finsi ; *++++++ * dessine * picture si (tstru . ilfotrace) ; bodes1 tstru t_oeil t_coef ; finsi ; * fin b_depo ; * finproc ; *------------------------------------------------------------------ * procedure de refroidissement * cooling down procedure *------------------------------------------------------------------ debproc refroidi tstru*table t_oeil*table t_coef*table ; *----------------------------- * refroidissement de la structure * final structure cooling down * en entree : table tstru * input : table tstru * 'MAILLAGE' : maillage courant / istant global mesh * 'TEMPERATURES', CHPOINT * 'DEPLACEMENTS', CHPOINT * 'CONTRAINTES', MCHAML * 'DEFORMATIONS_INELASTIQUES', MCHAML * 'VARIABLES_INTERNES', MCHAML * 'BLOCAGES_MECANIQUES', RIGIDITE * 'ILFOSOVE', LOGIQUE sauvegarde ou non / to save or not * 'ILFOTRACE', LOGIQUE dessine ou non / to picture or not * 'TEMPS_CALCULES', LISTREEL temps de refroidisssement/ cooling time * 'TEMPS_SAUVES', LISTREEL idem, facultatif / optional * en sortie : table tstru * output : table tstru * 'SAUVEGARDE', TABLE des sauvegardes, indicee par des entiers, * de sous-indices * 'TITRE', TEXTE * 'MAILLAGE', MAILLAGE * 'TEMPS', LISTREEL chronologie du refroidissement * 'MODELE', MMODEL * 'CARACTERISTIQUES', MCHAML * 'TEMPERATURES', TABLE * 'DEPLACEMENTS', TABLE * 'CONTRAINTES', TABLE * 'DEFORMATIONS_INELASTIQUES', TABLE * 'VARIABLES_INTERNES', TABLE * 'TEMPS', LISTREEL chronologie du calcul *----------------------- si (non (existe tstru temps)) ; finsi ; *++++++++++ * chargement t_ini = 0. ; sinon ; finsi ; + tstru . temps_calcules ; si (existe tstru temps_sauves) ; + tstru . temps_sauves ; finsi ; * *+++++++++++ * prepare la table pour pasapas tref = table ; tref . modele = tstru . modele et mod_conv ; tref . caracteristiques = tstru . caracteristiques et mat_conv ; tref . blocages_mecaniques = tstru . blocages_mecaniques ; tref . chargement = cha_conv ; tref . temps_calcules = lt_dep ; si (existe tstru temps_sauves) ; tref . temps_sauves = lt_sauv ; finsi ; tref.'MONO'=monop; tref . procedure_thermique = DUPONT ; tref . temps = table ; tref . temperatures = table ; tref . temperatures . 0 = tstru . temperatures ; tref . deplacements = table ; tref . deplacements . 0 = tstru . deplacements ; tref . contraintes = table ; tref . contraintes . 0 = tstru . contraintes ; tref . deformations_inelastiques = table ; tref . deformations_inelastiques . 0 = tstru . deformations_inelastiques ; tref . variables_internes = table ; tref . variables_internes . 0 = tstru . variables_internes ; TMASAU=table; tref . 'MES_SAUVEGARDES'=TMASAU; TMASAU .'DEFTO'=VRAI; TMASAU .'DEFIN'=VRAI; *+++++++++++ * execute pasapas tref ; *+++++++++++ * actualise tstru tstru . temps = tstru . temps et lt_dep ; lt1 = lt1 - 1 ; tstru . deplacements = tref . deplacements . lt1 ; tstru . temperatures = tref . temperatures . lt1 ; tstru . contraintes = tref . contraintes . lt1 ; tstru . deformations_inelastiques = tref . deformations_inelastiques . lt1 ; tstru . variables_internes = tref . variables_internes . lt1 ; si tstru . ilfosove ; si (non (existe tstru sauvegarde)) ; tstru . sauvegarde = table ; finsi ; tsauv = tstru . sauvegarde ; tsauv . nds = table ; tsauv . nds . titre = refroidissement ; tsauv . nds . maillage = tstru . maillage ; tsauv . nds . temps = tref . temps ; tsauv . nds . modele = tref . modele ; tsauv . nds . temperatures = tref . temperatures ; tsauv . nds . deplacements = tref . deplacements ; tsauv . nds . contraintes = tref . contraintes ; tsauv . nds . variables_internes = tref . variables_internes ; tsauv . nds . deformations_inelastiques = tref . deformations_inelastiques ; finsi ; * *++++++ * dessine si (tstru . ilfotrace) ; bodes1 tstru t_oeil t_coef ; finsi ; * finproc ; *------------------------------------------------------------------ * procedure de traces *------------------------------------------------------------------ debproc bodes1 tstru*table t_oeil*table t_coef*table ; *-------------------------------------------- * traces isovaleurs *------------------ * temperature 1100. 1200. 1300. 1400. ; tstru . deformee_thermique = tstru . deformee_thermique et defte1 ; titre (et tit_ref ' / temperature ') ; si (neg graph 'N') ; finsi ; * vmises 450. 500. ; tstru . deformee_mecanique = tstru . deformee_mecanique et defvm1 ; titre (et tit_ref ' / von mises (MPa) ') ; si (neg graph 'N') ; finsi ; * finproc ; *------------------------------------------------------------------ *------------------------------------------------------------------ * execution * run *------------------------------------------------------------------ nature diffuse ; ux 0. uy 0. uz 0. nature diffuse; chanfrei . variables_internes = chanfrei . depot_ini = 1 ; si misopoin ; chanfrei . depot_fin = 1 ; sinon ; chanfrei . depot_fin = n_tra1 ; finsi ; chanfrei . ilfosove = faux ; chanfrei . ilfotrace = vrai ; si misopoin ; chanfrei . delta_t = 2. ; sinon ; chanfrei . delta_t = 1. ; finsi ; * * temperature * t_coef . defo1 chpvm1 ; * depocord chanfrei t_oeil t_coef ; *++++++++++++++++++ si faux ; chanfrei . depot_ini = 2 ; chanfrei . depot_fin = 2 ; depocord chanfrei t_oeil t_coef ; finsi ; *++++++++++++++++++ si misopoin ; * chanfrei . temps_calcules = prog 0. pas 1. 10.; * refroidi chanfrei t_oeil t_coef ; sinon ; refroidi chanfrei t_oeil t_coef ; finsi ; *++++++++++++++++++ *bodes1 chanfrei t_oeil t_coef ; * *sauv chanfrei t_oeil l_vm l_temp ; * si (neg graph 'N') ; finsi ; *------------------------------------------------------------------ si ((abs(test1 - 20.)) > 10.) ; sinon ; finsi ; fin ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales