* fichier : poudre1.dgibi ************************************************************************ * Section : Mecanique Viscoplastique ************************************************************************ complet = faux ; * ************************************************* * pour calcul complet mettre complet à : vrai; *************************************************** * ************************************************************ * * * Cas test pour la loi poudre_A * * * * par Christophe DELLIS (CEREM) * * * ************************************************************ * cas isotrope * un cylindre est densifié par mise en pression * la densite initial est uniforme la densite finale * est connue analytiquement * *opti echo 0 ; * option dime 2 elem qua8 mode axis ; * * parametres du maillage * rayon_1 = 10.0 ; * haute_1 = 15.0 ; * * definition des coordonnees des points * xa0 = 0.0 ; ya0 = 0.0 ; * xa1 = rayon_1 ; ya1 = ya0 ; * xa2 = xa1 ; ya2 = ya1 + haute_1 ; * xa3 = 0.0 ; ya3 = ya2 ; * * definition des densites * dena0 = 10.0 ; dena1 = 10.0 ; dena2 = 10.0 ; dena3 = 10.0 ; * * definition des points * densite dena0 ; a0 = xa0 ya0 ; * densite dena1 ; a1 = xa1 ya1 ; * densite dena2 ; a2 = xa2 ya2 ; * densite dena3 ; a3 = xa3 ya3 ; * * definition des lignes * la0a1 = a0 droi 2 a1 ; la1a2 = a1 droi 2 a2 ; la2a3 = a2 droi 2 a3 ; la3a0 = a3 droi 2 a0 ; * la3a2 = inve la2a3 ; la2a1 = inve la1a2 ; * * lignes pour les conditions limites * l_symz = la0a1 ; l_symx = la3a0 ; l_ext1 = la1a2 ; l_ext2 = la2a3 ; * * definition des surfaces * elmat1 = surf ( la0a1 et la1a2 et la2a3 et la3a0 ) plan ; * piece_1 = coul elmat1 bleu ; * tot = piece_1 ; elim (tot et a2) 0.001 ; * * ************************************************************ * * * calcul * * * ************************************************************ * T0TEMPE = 925.0 ; T1TEMPE = 925.0 ; T0TEMPS = 0.0 ; T1TEMPS = 1200.0 ; T2TEMPS = 2400.0 ; T3TEMPS = 3600.0 ; * ******************************************* * Champ-point de temperature ******************************************* * clth0001 = BLOQ 'T' (l_ext1 et l_ext2) ; p_bloth1 = DEPI clth0001 1. ; p_temps1 = prog T0TEMPS T1TEMPS T2TEMPS T3TEMPS ; p_theta1 = prog T0TEMPE T1TEMPE T1TEMPE T0TEMPE ; ev_ther1 = EVOL MANU TEMPS p_temps1 'T' p_theta1 ; ch_ther1 = CHAR TIMP p_bloth1 ev_ther1 ; * ************************************************************ * * * materiau * * * ************************************************************ P1MODEL = MODE piece_1 MECANIQUE ELASTIQUE VISCOPLASTIQUE POUDRE_A CONS DEUX; * V1YOUNG = 118.0E+03 ; V1NU = 0.33 ; V1ALPHA = 10.0E-10 ; V1A = 7.76E-15 ; V1N = 4.55 ; V1QSRT = 0.0 ; V1RHOR = 0.68 ; V1F0 = 0.1098 ; V1F1 = 1.0168 ; V1F2 = -0.2591 ; V1F3 = 0.0 ; V1F4 = 0.0 ; V1F5 = 0.66 ; V1C0 = 2.10851 ; V1C1 = 1.21767 ; V1C2 = -0.43081 ; V1C3 = 0.0 ; V1C4 = 0.0 ; V1C5 = 50.0 ; * P1MATER = MATER P1MODEL YOUNG V1YOUNG NU V1NU ALPH V1ALPHA TALP 20. TREF 0. A V1A N V1N QSRT V1QSRT F0 V1F0 F1 V1F1 F2 V1F2 F3 V1F3 F4 V1F4 F5 V1F5 C0 V1C0 C1 V1C1 C2 V1C2 C3 V1C3 C4 V1C4 C5 V1C5 RHOR V1RHOR ; * P2MODEL = MODE piece_1 THERMIQUE ISOTROPE CONS UN ; * P2MATER = MATER P2MODEL 'C' 460 'K' 14.6 'RHO' 4.54 ; * ************************************************************ * * * chargement * * * ************************************************************ * p0bloca = bloque uz l_symz ; p1bloca = bloque ur l_symx ; * p_bloca = p0bloca et p1bloca ; * t0pres = 0.0 ; t1pres = 100.0 ; * li_tps = prog t0temps t1temps t2temps t3temps ; li_pres = prog t0pres t1pres t1pres t0pres ; ev_pres = evol manu temps li_tps pression li_pres ; *dess ev_pres titr 'Evolution du chargement en pression' nclk ; * p2force = pres mass p1model 1.0 l_ext1 ; p3force = pres mass p1model 1.0 l_ext2 ; titr 'Force appliquees' ; vec1 = vect (p2force et p3force) 'FR' 'FZ' 0.1; *trac vec1 piece_1 nclk ; * p2charg = char p2force ev_pres 'MECA'; p3charg = char p3force ev_pres 'MECA'; * p_charg = p2charg et p3charg ; * ************************************************************ * * * calcul * * * ************************************************************ * p_model = p1model et p2model ; p_mater = p1mater et p2mater ; *p_model = p1model ; *p_mater = p1mater ; * * Initialisation de la table pour la procedure PASAPAS * TAB1 = TABLE ; TAB1 . 'CHARGEMENT' = (p_charg et ch_ther1) ; TAB1 . 'MODELE' = p_model ; TAB1 . 'CARACTERISTIQUES' = p_mater ; TAB1 . 'BLOCAGES_MECANIQUES' = p_bloca ; TAB1 . 'BLOCAGES_THERMIQUES' = clth0001 ; si complet; tfin = 2400.; sinon; tfin = 400.; finsi; TAB1 . 'TEMPS_CALCULES' = PROG 0.0 PAS 50.0 tfin ; TAB1 . 'TEMPS_SAUVES' = PROG tfin ; TAB1 . 'MAXITERATION' = 49 ; TAB1 . 'MAXISOUSPAS' = 500 ; TAB1 . 'MOVA' = 'MOT' 'VHOR' ; TAB1 . 'PRECISION' = 1.0E-4 ; TAB1 . 'PROCEDURE_THERMIQUE' = 'MOT' 'LINEAIRE' ; * PASAPAS TAB1 ; * ************************************************************ * * * Test de validation * * * ************************************************************ * ind1 = index (TAB1 . 'VARIABLES_INTERNES') ; nb1 = dime ind1 ; * * densite finale * vm1 = TAB1 . 'VARIABLES_INTERNES' .(ind1.nb1) ; vm2 = exco VHOR vm1 ; vm3 = redu vm2 piece_1 ; rhof1 = maxi vm3 ; * * Calcul theorique analytique de la densite finale : * si complet; rhof2 = 0.7418622 ; sinon; rhof2 = 0.68006 ; finsi; * * Lecture des deplacements du noeud au coin de l'echantillon : * ind2 = index (TAB1 . 'DEPLACEMENTS' ) ; nb2 = dime ind2 ; ur1 = (extr TAB1 .'DEPLACEMENTS'.(ind2.nb2) ur a2) ; uz1 = (extr TAB1 .'DEPLACEMENTS'.(ind2.nb2) uz a2) ; * * Calcul analytique des deplacements pour une densification isotrope : * si complet; ur2 = rayon_1 * ((v1rhor/rhof1)**(1./3.) - 1.) ; uz2 = haute_1 * ((v1rhor/rhof1)**(1./3.) - 1.) ; sinon; ur2 = -1.25297E-03 ; uz2 = -1.88229E-03 ; finsi; list ur2 ;list ur1; list uz2 ; list uz1; * * Calcul des erreurs sur les deplacements et la densite : * erho1 = abs ((rhof1 - rhof2 )/rhof2); eur1 = abs ((ur1 - ur2) / ur2) ; euz1 = abs ((uz1 - uz2) / uz2) ; * * Ecriture des erreurs a l'ecran : * opti echo 0 ; sauter 3 lignes ; mess 'Calcul en isotrope :' ; mess 'Erreur sur le deplacement radial : ' eur1 ; mess 'Erreur sur le deplacement vertical : ' euz1 ; mess 'Erreur sur la densite finale: ' erho1 ; sauter 3 lignes ; * si ( (eur1 + euz1 + erho1 ) >eg 0.05 ) ; mess '---------RESULTATS INCORRECTS-------------' ; sauter 3 lignes ; erreur 5; sinon ; mess '---------RESULTATS CORRECTS-------------' ; sauter 3 lignes ; finsi ; * fin ;