* fichier : umat01.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 No1 : ELASTICITE ISOTROPE ISOTHERME * *======================================================================= *======================================================================= * * PROCEDURES DEPENDANTES * *======================================================================= *======================================================================= * * JEU DE DONNEES PRINCIPAL * *======================================================================= *======================================================================= * Maillage long = 1.0 ; larg = 1.0 ; epai = 1.0 ; p1 = 0.0 0.0 0.0 ; p1p2 = DROIT 1 p1 p2 ; p4p3 = DROIT 1 p4 p3 ; p11p21 = DROIT 1 p11 p21 ; p41p31 = DROIT 1 p41 p31 ; *======================================================================= * Comportement elastique isotrope isotherme * Traction uniaxiale Z *----------------------------------------------------------------------- * 1 - Calcul avec modele utilisateur * 1.1 Definition du modele utilisateur mo_meca = MODE cube 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE' 'NON_LINEAIRE' 'UTILISATEUR' 'NUME_LOI' 10 'C_MATERIAU' LCMAT ; * 1.2 Affectation des proprietes de materiau xyoun = 2.1e+11 ; xnu = 0.3 ; * 1.3 Evaluation de coefficients de la matrice de Hooke en vue du * calcul de la solution theorique coef1 = xyoun / ((1.0+xnu) * (1.0-(2.0*xnu))) ; coezz = coef1 * (1.0-xnu) ; coexxyy = xnu * coef1 ; * 1.4 Definition des chargements * 1.4.0 Creation de progressions pour la ponderation des chargements, * definissant autant d'etats a calculer * 1.4.1 Blocages mecaniques et deplacement axial impose uz3 = 1.0e-2 ; * 1.5 Resolution par PASAPAS TABU = TABLE ; TABU.'MODELE' = mo_meca ; TABU.'CARACTERISTIQUES' = ma_meca ; TABU.'CHARGEMENT' = charmeca ; TABU.'BLOCAGES_MECANIQUES' = clim1 ET clim2 ET clim3 ; TABU.'TEMPS_CALCULES' = L_temps ; TMASAU=table; tabu . 'MES_SAUVEGARDES'=TMASAU; TMASAU .'DEFTO'=VRAI; TMASAU .'DEFIN'=VRAI; TABU.'HYPOTHESE_DEFORMATIONS'='LINEAIRE'; PASAPAS TABU ; *----------------------------------------------------------------------- * 2 - Comparaison des resultats obtenus avec la solution theorique * N.B. On simule un essai de traction ZZ * - Critere strict sur UZ , EPZZ, SMXX, SMYY et SMZZ : * errrel < 1.d-12 * - Pour les autres composantes on note les depassements du critere * si impression demandee uxu = TABLE ; uyu = TABLE ; uzu = TABLE ; epxxu = TABLE ; epyyu = TABLE ; epzzu = TABLE ; gaxyu = TABLE ; gaxzu = TABLE ; gayzu = TABLE ; smxxu = TABLE ; smyyu = TABLE ; smzzu = TABLE ; smxyu = TABLE ; smxzu = TABLE ; smyzu = TABLE ; idepl = 3 ; idefo = 3 ; icon1 = 1 ; icon2 = 2 ; icon3 = 3 ; ierr = 0 ; critere = 1.d-12 ; IMESS = 0 ; ***IMESS = 1 ; nbgau = 8 ; ietat = 0 ; * DEBUT BOUCLE COMPARAISON DES RESULTATS________________________________ REPETER BECART (netat-1) ; ietat = ietat + 1 ; temps = TABU.'TEMPS'.ietat ; * Calcul de la solution theorique-------------------------------------- uz = temps * uz3 ; epzz = temps * (uz3 / epai) ; smxx = coexxyy * epzz ; smyy = coexxyy * epzz ; smzz = coezz * epzz ; * Extraction des resultats de calcul : Modele externe utilisateur------ * Deplacements * * Deformations totales igau = 0 ; REPETER BEPXXU nbgau ; igau = igau + 1 ; FIN BEPXXU ; igau = 0 ; REPETER BEPYYU nbgau ; igau = igau + 1 ; FIN BEPYYU ; igau = 0 ; REPETER BEPZZU nbgau ; igau = igau + 1 ; FIN BEPZZU ; igau = 0 ; REPETER BGAXYU nbgau ; igau = igau + 1 ; FIN BGAXYU ; igau = 0 ; REPETER BGAXZU nbgau ; igau = igau + 1 ; FIN BGAXZU ; igau = 0 ; REPETER BGAYZU nbgau ; igau = igau + 1 ; FIN BGAYZU ; * Contraintes igau = 0 ; REPETER BSMXXU nbgau ; igau = igau + 1 ; FIN BSMXXU ; igau = 0 ; REPETER BSMYYU nbgau ; igau = igau + 1 ; FIN BSMYYU ; igau = 0 ; REPETER BSMZZU nbgau ; igau = igau + 1 ; FIN BSMZZU ; igau = 0 ; REPETER BSMXYU nbgau ; igau = igau + 1 ; FIN BSMXYU ; igau = 0 ; REPETER BSMXZU nbgau ; igau = igau + 1 ; FIN BSMXZU ; igau = 0 ; REPETER BSMYZU nbgau ; igau = igau + 1 ; FIN BSMYZU ; * Comparaison des deplacements----------------------------------------- icomp = 1 ; ino = 0 ; ino = ino + 1 ; SI (NON (EGA uxu.ino 0.0)) ; SI (EGA IMESS 1) ; Message 'Erreur absolue' uxu.ino ' Noeud' ino 'Etat' ietat ; Message ; FINSI ; *********ierr = 10 ; errabs = uxu.ino ; QUITTER BECART ; FINSI ; FIN BUX ; icomp = 2 ; ino = 0 ; ino = ino + 1 ; SI (NON (EGA uyu.ino 0.0)) ; SI (EGA IMESS 1) ; Message 'Erreur absolue' uyu.ino ' Noeud' ino 'Etat' ietat ; Message ; FINSI ; *********ierr = 10 ; errabs = uyu.ino ; QUITTER BECART ; FINSI ; FIN BUY ; icomp = 3 ; ino = 0 ; ino = ino + 1 ; SI (ino < 5) ; SI (NON (EGA uzu.ino 0.0)) ; SI (EGA IMESS 1) ; Message 'Erreur absolue' uzu.ino ' Noeud' ino 'Etat' ietat ; Message ; FINSI ; ************ierr = 10 ; errabs = uzu.ino ; QUITTER BECART ; FINSI ; SINON ; duz = ABS (uz - uzu.ino) ; errrel = ABS (duz / uz) ; SI (errrel > critere) ; ************SI (EGA IMESS 1) ; ************Message 'Erreur relative' errrel ************ 'Composante ' (EXTR LDEPL icomp) ************ ' Noeud' ino 'Etat' ietat ; ************Message 'uz =' uz 'uzu.ino =' uzu.ino ; ************Message ; ************FINSI ; ierr = 11 ; QUITTER BECART ; FINSI ; FINSI ; FIN BUZ ; * Comparaison des deformations totales--------------------------------- icomp = 1 ; igau = 0 ; REPETER BEPXX nbgau ; igau = igau + 1 ; SI (NON (EGA epxxu.igau 0.0)) ; SI (EGA IMESS 1) ; Message 'Erreur absolue' epxxu.igau ' Point Gauss' igau 'Etat' ietat ; Message ; FINSI ; *********ierr = 20 ; errabs = epxxu.igau ; QUITTER BECART ; FINSI ; FIN BEPXX ; icomp = 2 ; igau = 0 ; REPETER BEPYY nbgau ; igau = igau + 1 ; SI (NON (EGA epyyu.igau 0.0)) ; SI (EGA IMESS 1) ; Message 'Erreur absolue' epyyu.igau ' Point Gauss' igau 'Etat' ietat ; Message ; FINSI ; *********ierr = 20 ; errabs = epyyu.igau ; QUITTER BECART ; FINSI ; FIN BEPYY ; icomp = 3 ; igau = 0 ; REPETER BEPZZ nbgau ; igau = igau + 1 ; depzz = ABS (epzz - epzzu.igau) ; errrel = ABS (depzz / epzz) ; SI (errrel > critere) ; *********SI (EGA IMESS 1) ; *********Message 'Erreur relative' errrel ********* 'Composante ' (EXTR LDEFO icomp) ********* ' Point Gauss' igau 'Etat' ietat ; *********Message 'epzz =' epzz 'epzzu.igau =' epzzu.igau ; *********Message ; *********FINSI ; ierr = 21 ; QUITTER BECART ; FINSI ; FIN BEPZZ ; icomp = 4 ; igau = 0 ; REPETER BGAXY nbgau ; igau = igau + 1 ; SI (NON (EGA gaxyu.igau 0.0)) ; SI (EGA IMESS 1) ; Message 'Erreur absolue' gaxyu.igau ' Point Gauss' igau 'Etat' ietat ; Message ; FINSI ; *********ierr = 20 ; errabs = gaxyu.igau ; QUITTER BECART ; FINSI ; FIN BGAXY ; icomp = 5 ; igau = 0 ; REPETER BGAXZ nbgau ; igau = igau + 1 ; SI (NON (EGA gaxzu.igau 0.0)) ; SI (EGA IMESS 1) ; Message 'Erreur absolue' gaxzu.igau ' Point Gauss' igau 'Etat' ietat ; Message ; FINSI ; *********ierr = 20 ; errabs = gaxzu.igau ; QUITTER BECART ; FINSI ; FIN BGAXZ ; icomp = 6 ; igau = 0 ; REPETER BGAYZ nbgau ; igau = igau + 1 ; SI (NON (EGA gayzu.igau 0.0)) ; SI (EGA IMESS 1) ; Message 'Erreur absolue' gayzu.igau ' Point Gauss' igau 'Etat' ietat ; Message ; FINSI ; *********ierr = 20 ; errabs = gayzu.igau ; QUITTER BECART ; FINSI ; FIN BGAYZ ; * Comparaison des contraintes------------------------------------------ icomp = 1 ; igau = 0 ; REPETER BSMXX nbgau ; igau = igau + 1 ; dsmxx = ABS (smxx - smxxu.igau) ; errrel = ABS (dsmxx / smxx) ; SI (errrel > critere) ; *********SI (EGA IMESS 1) ; *********Message 'Erreur relative' errrel ********* 'Composante ' (EXTR LCONT icomp) ********* ' Point Gauss' igau 'Etat' ietat ; *********Message 'smxx =' smxx 'smxxu.igau =' smxxu.igau ; *********Message ; *********FINSI ; ierr = 31 ; QUITTER BECART ; FINSI ; FIN BSMXX ; icomp = 2 ; igau = 0 ; REPETER BSMYY nbgau ; igau = igau + 1 ; dsmyy = ABS (smyy - smyyu.igau) ; errrel = ABS (dsmyy / smyy) ; SI (errrel > critere) ; *********SI (EGA IMESS 1) ; *********Message 'Erreur relative' errrel ********* 'Composante ' (EXTR LCONT icomp) ********* ' Point Gauss' igau 'Etat' ietat ; *********Message 'smyy =' smyy 'smyyu.igau =' smyyu.igau ; *********Message ; *********FINSI ; ierr = 31 ; QUITTER BECART ; FINSI ; FIN BSMYY ; icomp = 3 ; igau = 0 ; REPETER BSMZZ nbgau ; igau = igau + 1 ; dsmzz = ABS (smzz - smzzu.igau) ; errrel = ABS (dsmzz / smzz) ; SI (errrel > critere) ; *********SI (EGA IMESS 1) ; *********Message 'Erreur relative' errrel ********* 'Composante ' (EXTR LCONT icomp) ********* ' Point Gauss' igau 'Etat' ietat ; *********Message 'smzz =' smzz 'smzzu.igau =' smzzu.igau ; *********Message ; *********FINSI ; ierr = 31 ; QUITTER BECART ; FINSI ; FIN BSMZZ ; icomp = 4 ; igau = 0 ; REPETER BSMXY nbgau ; igau = igau + 1 ; SI (NON (EGA smxyu.igau 0.0)) ; SI (EGA IMESS 1) ; Message 'Erreur absolue' smxyu.igau ' Point Gauss' igau 'Etat' ietat ; Message ; FINSI ; *********ierr = 30 ; errabs = smxyu.igau ; QUITTER BECART ; FINSI ; FIN BSMXY ; icomp = 5 ; igau = 0 ; REPETER BSMXZ nbgau ; igau = igau + 1 ; SI (NON (EGA smxzu.igau 0.0)) ; SI (EGA IMESS 1) ; Message 'Erreur absolue' smxzu.igau ' Point Gauss' igau 'Etat' ietat ; Message ; FINSI ; *********ierr = 30 ; errabs = smxzu.igau ; QUITTER BECART ; FINSI ; FIN BSMXZ ; icomp = 6 ; igau = 0 ; REPETER BSMYZ nbgau ; igau = igau + 1 ; SI (NON (EGA smyzu.igau 0.0)) ; SI (EGA IMESS 1) ; Message 'Erreur absolue' smyzu.igau ' Point Gauss' igau 'Etat' ietat ; Message ; FINSI ; *********ierr = 30 ; errabs = smyzu.igau ; QUITTER BECART ; FINSI ; FIN BSMYZ ; FIN BECART ; * FIN BOUCLE COMPARAISON DES RESULTATS________________________________ * MESSAGES D'ERREUR_____________________________________________________ SI (ierr > 0) ; SI (EGA ierr 10) ; ' Noeud' ino 'Etat' ietat ; FINSI ; SI (EGA ierr 11) ; ' Noeud' ino 'Etat' ietat ; FINSI ; SI (EGA ierr 20) ; ' Point Gauss' igau 'Etat' ietat ; FINSI ; SI (EGA ierr 21) ; ' Point Gauss' igau 'Etat' ietat ; FINSI ; SI (EGA ierr 30) ; ' Point Gauss' igau 'Etat' ietat ; FINSI ; SI (EGA ierr 31) ; ' Point Gauss' igau 'Etat' ietat ; FINSI ; SINON ; Message 'Resultats concordants avec la solution theorique' ; Message 'Aucune erreur relative superieure a ' critere ' pour les composantes' ; FINSI ; FIN ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales