* fichier : umat04.dgibi *======================================================================= * * CAS TEST DE VALIDATION DE LA PRISE EN COMPTE D'UNE LOI DE * * COMPORTEMENT MECANIQUE NON LINEAIRE EXTERNE * *======================================================================= * * Modele 'NON_LINEAIRE' 'UTILISATEUR', integrateur specifique UMAT * * Test No4 : Modele VISCOPLASTIQUE GATT_MONERIE * Reprise du test gatt_3d.dgibi * *======================================================================= *======================================================================= * * PROCEDURES DEPENDANTES * *======================================================================= *======================================================================= * * JEU DE DONNEES PRINCIPAL * *======================================================================= * =============================== * 0 - Options generales de calcul * =============================== opti dime 3 mode tridim ; opti elem cu20 ; 'OPTI' 'TRAC' 'PSC' ; L = 'MOT' LIST ; F = 'MOT' FIN ; GRAPH = FAUX ; LISTCOUR = VRAI ; * ============ * 1 - Maillage * ============ NA = 1 ; NR = 1 ; H = 6.2e-3 ; D = 5.e-3 ; R = D/2. ; HS2 = H/2. ; OO = 0.0 0.0 0.0 ; A1 = R 0.0 0.0 ; A2 = R 0.0 HS2 ; A3 = 0.0 0.0 HS2 ; LB = DROIT NR OO A1 ; LD = DROIT NA A1 A2 ; LH = DROIT NR A2 A3 ; LG = DROIT NA A3 OO ; SU1 = DALL LB LD LH LG 'PLAN' ; SU2 = SU1 TOUR 30.0 OO A3 ; VOL1 = VOLU 1 SU1 SU2 ; ELIM VOL1 (D/1000.0) ; VOL1 = REGE VOL1 ; SUA = POIN (COOR 2 VOL1) 'INFERIEUR' (D/1000.0) ; SUB = POIN (COOR 3 VOL1) 'INFERIEUR' (D/1000.0) ; SUH = POIN (COOR 3 VOL1) 'SUPERIEUR' (HS2 - (D/1000.0)) ; LG = VOL1 'POIN' 'DROIT' OO A3 (D/1000.0) ; * ======================================================== * 2 - Affectation des parametres de la loi de comportement * ======================================================== TE1 = 1400.0 + 273.0 ; PO = 4.52E-2 ; DF1 = 1.E18 ; * -------------------------------------------------------------- * 2.1 - AFFECTATION DES PARAMETRES DE MATERIAU : premiere partie * -------------------------------------------------------------- * Description du module d'Young * Degre du polynome IDEGE = 2 ; * Coefficient du degre 0, coefficient du degre 1, coefficient du degre 2 LEE = PROG 226930.e+06 -1.5399e+07 -9.3597e+03 ; * Description du module de cisaillement * Degre du polynome IDEGG = 2 ; * Coefficient du degre 0, coefficient du degre 1, coefficient du degre 2 LGG = PROG 85830.e+06 -5.157e+06 -3.747e+03 ; * Polynome du coefficient de dilatation thermique Polynome(T)/(T-273) * pour T < Talpha * Degre du polynome IDEGAI = 3 ; * Coefficient du degre 0, coefficient du degre 1, coefficient du degre 2 * coefficient du degre 3 LALI = PROG -2.66e-03 9.802e-6 -2.705e-10 4.391e-13 ; * Polynome du coefficient de dilatation thermique Polynome(T)/(T-273) * pour T > Talpha * Degre du polynome IDEGAS = 3 ; * Coefficient du degre 0, coefficient du degre 1, coefficient du degre 2 * coefficient du degre 3 LALS = PROG -3.28e-03 1.179e-05 -2.429e-09 1.219e-12 ; * Temperature de transition pour les deux polynomes decrivant * le coefficient de dilatation thermique (en Kelvin) TALPHA = 923. ; * Constructions d'objets a l'aide des donnees precedentes *-- Liste de temperatures (en Kelvin) TK = 'PROG' 273.15 'PAS' 10. 2603.15 ; *-- On insere Talpha dans TK TK = TK 'ET' ('PROG' TALPHA) ; TK = 'ORDO' TK ; NTK = 'DIME' TK ; L273 = 'PROG' NTK * 273.; *-- Construction des ordonnees : partie temperature OEET = 'PROG' NTK*('EXTR' LEE 1) ; 'SI' ('>' ('DIME' LEE) 1) ; 'REPE' BLOC (('DIME' LEE) - 1) ; OEET = OEET + (('EXTR' LEE (&BLOC+1))*(TK**(&BLOC))); 'FIN' BLOC ; 'FINS' ; 'MESS' 'sur la plage de temperatures' ('MINI' TK) '< T(K) <' ('MAXI' TK) ; 'MESS' 'et pour une porosite nulle' ; MIOEET = 'MINI' OEET ; MAOEET = 'MAXI' OEET ; 'MESS' 'module d Young compris entre' MIOEET 'et' MAOEET ; 'SI' ('' (DIME LGG) 1) ; 'REPE' BLOC (('DIME' LGG) - 1) ; OGGT = OGGT + (('EXTR' LGG (&BLOC+1))*(TK**(&BLOC))); 'FIN' BLOC ; 'FINS' ; MIOGGT = 'MINI' OGGT ; MAOGGT = 'MAXI' OGGT ; 'MESS' 'module de cisaillement compris entre' MIOGGT 'et' MAOGGT ; 'SI' ('' (DIME LALI) 1) ; 'REPE' BLOC (('DIME' LALI) - 1) ; OALIT = OALIT + (('EXTR' LALI (&BLOC+1))*(TK**(&BLOC))); 'FIN' BLOC ; OALIT = OALIT / (TK - L273); 'FINS' ; * OALST = 'PROG' NTK*('EXTR' LALS 1) ; 'SI' ('>' (DIME LALS) 1) ; 'REPE' BLOC (('DIME' LALS) - 1) ; OALST = OALST + (('EXTR' LALS (&BLOC+1))*(TK**(&BLOC))); 'FIN' BLOC ; OALST = OALST / (TK - L273); 'FINS' ; * ALTI = IPOL TALPHA TK OALIT ; ALTS = IPOL TALPHA TK OALST ; * NTKI = TK 'MASQ' 'INFERIEUR' TALPHA 'SOMM' ; OALIT = 'EXTR' OALIT ('LECT' 1 'PAS' 1 NTKI) ; OALST = 'EXTR' OALST ('LECT' (NTKI+1) 'PAS' 1 NTK) ; OALT = OALIT 'ET' OALST ; * * On tronque ALPHA_moy en dessous de 293K NT293 = TK 'MASQ' 'INFERIEUR' 293. 'SOMM'; XEALTT = 'EXTR' TK ('LECT' (NT293+1) 'PAS' 1 NTK) ; YEALTT = 'EXTR' OALT ('LECT' (NT293+1) 'PAS' 1 NTK) ; * On remplace la partie enlevée par une IPOL entre * ALPHA_moy(T=0) et ALPHA_moy(T=293) AL0 = ('EXTR' LALI 1) / (0. - 273); AL293 = (('EXTR' LALI 1) + (('EXTR' LALI 2)*293.) + (('EXTR' LALI 3)*293.*293.) + (('EXTR' LALI 4)*293.*293.*293.)) / (293. - 273.); XEALTN = (PROG 0. 293.) ET XEALTT; YEALTN = (PROG AL0 AL293) ET YEALTT; * MIOALT = 'MINI' YEALTN ; MAOALT = 'MAXI' YEALTN ; 'MESS' 'coefficient de dilatation compris entre' MIOALT 'et' MAOALT ; 'SI' ('<' MIOALT 0) ; 'MESS' 'ERREUR : coefficient de dilatation negatif !' ; 'FINS' ; * ERRALT=100.*(ALTS-ALTI)/ ALTS ; 'SI' ('>' ERRALT 1.D-02) ; 'MESS' 'ATTENTION : a la temperature de transition :' TALPHA 'K' ; 'MESS' 'les deux valeurs du coefficient de dilatation thermique' ; 'MESS' 'different de' ERRALT '%' ALTI ALTS ; 'FINS' ; * *-- Construction des evolutions obtenues pour une porosite nulle EEET = 'EVOL' 'MANU' 'T' TK 'YOUN' OEET ; EGGT = 'EVOL' 'MANU' 'T' TK 'G' OGGT ; EALT = 'EVOL' 'MANU' 'T' XEALTN 'ALPH' YEALTN ; * -------------------------------------------------------------- * 2.2 - AFFECTATION DES PARAMETRES DE MATERIAU : deuxieme partie * -------------------------------------------------------------- PORY = 2.5 ; PORG = 2.25 ; PORA = 1. ; * Constructions d'objets a l'aide des donnees precedentes *-- Liste de porosites ( ) PP = 'PROG' 0. 'PAS' 0.001 0.3 ; NPP = 'DIME' PP ; *-- Construction des ordonnees : partie porosite OEEP = ('PROG' NPP*1.) - (PORY*PP) ; MIOEEP = 'MINI' OEEP ; 'SI' (' T2 (TMIL+0.1)) ; EVTH = -1. * DELTAZ / HS2 / (TFIN - TMIL) ; 'FINS' ; * ---------------------------------------------------- * SMZZ EST PREPONDERANTE DEVANT LES AUTRES CONTRAINTES * ---------------------------------------------------- SMZZ = 'MAXI' ('EXCO' (SS_u . &BLOC_u) 'SMZZ') ; SSM = SMZZ / 3. ; SSEQ = 'ABS' SMZZ ; SSPRIM1 = -1. * SMZZ / 3 ; SSPRIM2 = -1. * SMZZ / 3 ; SSPRIM3 = 2. * SMZZ / 3 ; * --------------------------------------------- * DEFORMATION VISCO-PLASTIQUE EQUIVALENTE EVPEQ * --------------------------------------------- EVXX = 'MAXI' ('EXCO' VV_u.&BLOC_u 'ENXX') ; EVYY = 'MAXI' ('EXCO' VV_u.&BLOC_u 'ENYY') ; EVZZ = 'MAXI' ('EXCO' VV_u.&BLOC_u 'ENZZ') ; EVH = (EVXX+EVYY+EVZZ) / 3. ; EVPEQ = ((EVXX - EVH)**2) + ((EVYY - EVH)**2) + ((EVZZ - EVH)**2) ; EVPEQ = ((2./3.) * EVPEQ)**0.5 ; * ------------------------------------------ * VITESSE DE DEFORMATION VISCO-PLASTIQUE EVP * ------------------------------------------ *-- fluage primaire * 'SI' ('<' EVPEQ 1E-10) ; EVPEQ = 1E-10 ; 'FINSI' ; * EVP01 = 1.5 * TA.'KPUO' * ('EXP' (-1.*TA.'QP'/(TA.'R'*TE1))) * ( (SSEQ**(AP-1)) / (EVPEQ**BP) ) * SSPRIM1 ; * EVP02 = 1.5 * TA.'KPUO' * ('EXP' (-1.*TA.'QP'/(TA.'R'*TE1))) * ( (SSEQ**(AP-1)) / (EVPEQ**BP) ) * SSPRIM2 ; * EVP03 = 1.5 * TA.'KPUO' * ('EXP' (-1.*TA.'QP'/(TA.'R'*TE1))) * ( (SSEQ**(AP-1)) / (EVPEQ**BP) ) * SSPRIM3 ; * *-- fluage secondaire (2 mecanismes) * PP = 'MAXI' ('EXCO' VV_u . &BLOC_u 'PORO') ; A1 = (N1* (PP**(-1./N1) - 1.)**(-2.*N1/(N1+1.))) ; B1 = (1. + (2.*PP/3.))/ ((1. - PP) **(2.*N1/(N1+1.))) ; AB1 = (9. * A1) / ( (4.*B1) + A1 ) ; BA1 = B1 / ( B1 + (A1/4.) ) ; * GSSEQ = ((BA1 * (SSEQ**2)) + (AB1 * (SSM**2))) ** 0.5 ; A2 = (N2* (PP**(-1./N2) - 1.)**(-2.*N2/(N2+1.))) ; B2 = (1. + (2.*PP/3.))/ ((1. - PP) **(2.*N2/(N2+1.))) ; * EVP11 = 0.5 * (TA.'K1' * (TA.'DG'**TA.'M1') * WC1 * ('EXP' (-1.*TA.'Q1'/(TA.'R'*TE1))) * (((A1*((1.5*SSM)**2)) + (B1*(SSEQ ** 2)))**((N1-1.)/2.)) * ((A1*1.5*SSM) + (3.*B1*SSPRIM1))) ; * EVP21 = 0.5 * (TA.'K2' * WC2 * ('EXP' (-1.*TA.'Q2'/(TA.'R'*TE1))) * (((A2*((1.5*SSM)**2)) + (B2*(SSEQ ** 2)))**((N2-1.)/2.)) * ((A2*1.5*SSM) + (3.*B2*SSPRIM1))) ; * EVP12 = 0.5 * (TA.'K1' * (TA.'DG'**TA.'M1') * WC1 * ('EXP' (-1.*TA.'Q1'/(TA.'R'*TE1))) * (((A1*((1.5*SSM)**2)) + (B1*(SSEQ ** 2)))**((N1-1.)/2.)) * ((A1*1.5*SSM) + (3.*B1*SSPRIM2))) ; * EVP22 = 0.5 * (TA.'K2' * WC2 * ('EXP' (-1.*TA.'Q2'/(TA.'R'*TE1))) * (((A2*((1.5*SSM)**2)) + (B2*(SSEQ ** 2)))**((N2-1.)/2.)) * ((A2*1.5*SSM) + (3.*B2*SSPRIM2))) ; * EVP13 = 0.5 * (TA.'K1' * (TA.'DG'**TA.'M1') * WC1 * ('EXP' (-1.*TA.'Q1'/(TA.'R'*TE1))) * (((A1*((1.5*SSM)**2)) + (B1*(SSEQ ** 2)))**((N1-1.)/2.)) * ((A1*1.5*SSM) + (3.*B1*SSPRIM3))) ; * EVP23 = 0.5 * (TA.'K2' * WC2 * ('EXP' (-1.*TA.'Q2'/(TA.'R'*TE1))) * (((A2*((1.5*SSM)**2)) + (B2*(SSEQ ** 2)))**((N2-1.)/2.)) * ((A2*1.5*SSM) + (3.*B2*SSPRIM3))) ; * PSI1 = TA.'K1' * WC1 * (TA.'DG'**TA.'M1')/(N1+1.) * ('EXP' (-1.*TA.'Q1'/(TA.'R'*TE1))) * (((A1*((1.5*SSM)**2)) + (B1*(SSEQ ** 2)))**((N1+1.)/2.)) ; * PSI2 = TA.'K2' * WC2/(N2+1.) * ('EXP' (-1.*TA.'Q2'/(TA.'R'*TE1))) * (((A2*((1.5*SSM)**2)) + (B2*(SSEQ ** 2)))**((N2+1.)/2.)) ; * EVPC1 = 0.5 * TA.'BETA' / TA.'H' * TA.'Q' * TA.'OMEG' * (GSSEQ**(-1.*TA.'Q' - 2.)) * (1. - (('TANH' ((TE1 - (TA.'OMEG' * (GSSEQ**(-1.*TA.'Q')))) / TA.'H'))**2)) * (PSI2 - PSI1) * ( ((AB1*SSM)/3.) + (1.5*BA1*SSPRIM1) ) ; * EVPC2 = 0.5 * TA.'BETA' / TA.'H' * TA.'Q' * TA.'OMEG' * (GSSEQ**(-1.*TA.'Q' - 2.)) * (1. - (('TANH' ((TE1 - (TA.'OMEG' * (GSSEQ**(-1.*TA.'Q')))) / TA.'H'))**2)) * (PSI2 - PSI1) * ( ((AB1*SSM)/3.) + (1.5*BA1*SSPRIM2) ) ; * EVPC3 = 0.5 * TA.'BETA' / TA.'H' * TA.'Q' * TA.'OMEG' * (GSSEQ**(-1.*TA.'Q' - 2.)) * (1. - (('TANH' ((TE1 - (TA.'OMEG' * (GSSEQ**(-1.*TA.'Q')))) / TA.'H'))**2)) * (PSI2 - PSI1) * ( ((AB1*SSM)/3.) + (1.5*BA1*SSPRIM3) ) ; * TETA = 0.5 * TA.'BETA' * (1. + ('TANH' ((TE1 - (TA.'OMEG' * (GSSEQ**(-1.*TA.'Q')))) / TA.'H'))) ; * EVP1 = EVP01 + ((1. - TETA) * EVP11) + (TETA * EVP21) + EVPC1 ; EVP2 = EVP02 + ((1. - TETA) * EVP12) + (TETA * EVP22) + EVPC2 ; EVP3 = EVP03 + ((1. - TETA) * EVP13) + (TETA * EVP23) + EVPC3 ; * ------------------------------------- * VITESSE DE DEFORMATION ELASTIQUE EVEL * ------------------------------------- DSMZZ = (SMZZ - SMZZ1) / (T2 - T1) ; EVEL = DSMZZ / ('MAXI' EE_u) ; * ---------------------------------- * VITESSE DE DEFORMATION IRRADIATION * ---------------------------------- EVIR1 = 1.5 * TA.'A' * DF1 * (SSEQ **(TA.'N3' - 1.)) * ('EXP' (-1.*TA.'Q3'/(TA.'R'*TE1))) * SSPRIM1 ; EVIR2 = 1.5 * TA.'A' * DF1 * (SSEQ **(TA.'N3' - 1.)) * ('EXP' (-1.*TA.'Q3'/(TA.'R'*TE1))) * SSPRIM2 ; EVIR3 = 1.5 * TA.'A' * DF1 * (SSEQ **(TA.'N3' - 1.)) * ('EXP' (-1.*TA.'Q3'/(TA.'R'*TE1))) * SSPRIM3 ; * ------------------------------------ * VITESSE DE DEFORMATION DENSIFICATION * ------------------------------------ * CE QUI SUIT EST VRAI CAR LE FLUX DE FISSIONS EST CONSTANT BU = AKBU * T2 ; 'SI' (BU '>' BUMI) ; NUMER = (RHO0 * RHO0 * AKEVD) - (RHO0 * AAAA * AKEVD) + (RHO0 * AAAA * AKEVD * ('LOG' (BU / BUMI))) - (RHO0 * AAAA / T2) ; DENOM = (RHO0 + (AAAA * ('LOG' (BU / BUMI)))) * (RHO0 + (AAAA * ('LOG' (BU / BUMI)))) ; EVD = -1. * (AKEVD - (NUMER/DENOM)) / 3. ; 'SINO' ; EVD = 0. ; 'FINS' ; * --------------------------------- * VITESSE DE DEFORMATION GONFLEMENT * --------------------------------- * CE QUI SUIT EST VRAI CAR LE FLUX DE FISSIONS EST CONSTANT EVG = AKEVD/3. ; * ------------------------------- * VITESSE DE DEFORMATION SELON ZZ * ------------------------------- EVCALC = ((1.+(TA.'K'*DF1))*EVP3) + EVEL + EVIR3 + EVD + EVG ; ECART1 = (EVCALC - EVTH) / EVTH ; ERMAX1 = 'MAXI' ('PROG' ('ABS' ECART1) ERMAX1) ; * ------------------- * VITESSE DE POROSITE * ------------------- FF = 'MAXI' ('EXCO' (VV_u . &BLOC_u) 'PORO') ; DFF = (FF - FF1) / (T2 - T1) ; EVFF = (3.*EVD) + ((1. - FF) * (1.+(TA.'K'*DF1))*(EVP1+EVP2+EVP3)) + ((1. - FF) * (EVIR1 + EVIR2 + EVIR3)) ; ECART2 = ('ABS' (DFF - EVFF)) / FF ; ERMAX2 = 'MAXI' ('PROG' ('ABS' ECART2) ERMAX2) ; LTT_u = LTT_u 'ET' ('PROG' T2) ; LEVP3_u = LEVP3_u 'ET' ('PROG' EVP3) ; LEVCALCu = LEVCALCu 'ET' ('PROG' EVCALC) ; LEVTH_u = LEVTH_u 'ET' ('PROG' EVTH) ; LDFF_u = LDFF_u 'ET' ('PROG' DFF) ; LEVFF_u = LEVFF_u 'ET' ('PROG' EVFF) ; LSMZZ_u = LSMZZ_u 'ET' ('PROG' SMZZ) ; FF1 = FF ; SMZZ1 = SMZZ ; T1 = T2 ; 'FIN' BLOC_u ; Message 'CPU avec modele externe = ' CPUext 'centiemes de seconde' ; 'SI' ( ERMAX1 ' 0.05 ' ; 'ERRE' 5; 'FINS'; 'SI' ( ERMAX2 ' 0.05 ' ; 'ERRE' 5; 'FINS'; *----------------------------------------------------------------------- * 8 - Post-traitement : visualisations graphiques si demandees 'SI' GRAPH ; 'TITR' 'Tridimensionnel : Vitesses de Deformation' ; EVEVP_u = 'EVOL' 'MANU' LTT_u 'Temps' LEVP3_u 'Vitesse' ; EVEVC_u = 'EVOL' 'MANU' LTT_u 'Temps' LEVCALCu 'Vitesse' ; EVEVTH_u = 'EVOL' 'MANU' LTT_u 'Temps' LEVTH_u 'Vitesse' ; TAD_u = TABLE ; TAD_u . 1 = 'TIRC' ; TAD_u . 3 = 'TIRR' ; TAD_u . 'TITRE' = TABLE ; TAD_u . 'TITRE' . 1 = 'Viscoplastique Analytique' ; TAD_u . 'TITRE' . 2 = 'Totale Calculee' ; TAD_u . 'TITRE' . 3 = 'Totale Analytique' ; 'DESS' (EVEVP_u 'ET' EVEVC_u 'ET' EVEVTH_u) TAD_u 'LEGE' ; * 'TITR' 'Tridimensionnel : Vitesses de variation de la porosite' ; EVDFF_u = 'EVOL' 'MANU' LTT_u 'Temps' LDFF_u 'Vitesse' ; EVEVFF_u = 'EVOL' 'MANU' LTT_u 'Temps' LEVFF_u 'Vitesse' ; TAF_u = TABLE ; TAF_u . 2 = 'TIRR' ; TAF_u . 'TITRE' = TABLE ; TAF_u . 'TITRE' . 1 = 'Calculee' ; TAF_u . 'TITRE' . 2 = 'Analytique' ; 'DESS' (EVDFF_u 'ET' EVEVFF_u) TAF_u 'LEGE' ; * 'TITR' 'Tridimensionnel : Contrainte' ; EVSMZZ_u = 'EVOL' 'MANU' LTT_u 'Temps' LSMZZ_u 'Contrainte' ; 'DESS' EVSMZZ_u ; 'FINS' ; 'FINS' ; FIN ;