1 : C ENDOM1 SOURCE CHAT 05/01/12 23:39:05 5004 2 : SUBROUTINE ENDOM1(SIGG,NSTRS,VARR,XMAT,NCOMAT,XCAR,ICARA, 3 : 1NCOURB,TRAC,NNVARI,MFR,IFOURB,DD,DDINV,BB,R,S,XMU, 4 : 2QSI,KERRE,SIGGD,W,F,INDIC,ITHHER,YUNGV,XNUV) 5 : C 6 : C 7 : C =================================================================== 8 : C CE SOUS-PROGRAMME EST APPELE DANS "LOIS". 9 : C IL CALCULE LES MATR. DD ET BB, LES VECT. R,S,XMU ET QSI DS. 10 : C LE CAS DE L'ECROUISSAGE ET DE L'ENDOMMAGEMENT ISOTROPES. 11 : C EN REGIME ANISOTHERME. 12 : C 13 : C ENTREES: 14 : C ------- 15 : C NSTRS = NBR. DE COMPOSANTES DES CONTR. OU DES DEFORM. 16 : C SIGG(NSTRS) = CONTR. 17 : C NNVARI = NBR. DE VARIABLES INTERNES PILOTANT LES EQUATIONS 18 : C DU MODELE (VAUT 2) 19 : C VARR(2)... = VARIABLES INTERNES PILOTANT LES EQUATIONS DU MODELE 20 : C ...VARR(1+NNVARI) (r ET D) 21 : C NCOMAT = NBR. DE CARACTERISTIQUES MECANIQUES DU MATERIAU 22 : C XMAT(NCOMAT) = CARACTERISTIQUES MECANIQUES DU MATERIAU 23 : C MFR = INDICE DE LA FORMULATION MECANIQUE; SEULEMENT 24 : C MASSIF OU COQUE POUR LES MATERIAUX ENDOMMAGEABLES 25 : C ICARA = NBR. DE CARACT. GEOMETRIQUES DES ELEMENTS FINIS 26 : C XCAR(ICARA) = CARACT. GEOMETRIQUES DES ELEMENTS FINIS 27 : C NCOURB = NBR. DE PTS. DE LA COURBE DE TRACTION 28 : C TRAC(2NCOURB)= COURBE DE TRACTION 29 : C YUNGV = DERIVEE DU MODULE D'YOUNG / TEMPERATURE 30 : C XNUV = DERIVEE DU COEFFICIENT DE POISSON / TEMPERATURE 31 : C 32 : C SORTIES: 33 : C ------- 34 : C DD(NSTRS,NSTRS) = MATRICE DE HOOK ENDOMMAGEE 35 : C BB(NSTRS,NNVARI)= MATRICE DEFINIE DS. LA RELATION SUIVANTE: 36 : C . . . 37 : C SIG = DD*EPSELAS + BB*Q AVEC: 38 : C - SIG = CONTR. 39 : C - EPSELAS = DEFORM. ELASTIQUES 40 : C - Q = VAR. INT. PILOTANT LES LOIS DU MODELE 41 : C R(NSTRS) = LOI D'ECOULEMENT PLASTIQUE 42 : C S(NNVARI) = LOIS D'EVOLUTION DES VARIABLES Q 43 : C XMU(NSTRS) = DERIVEE DU CRITERE PAR RAPPORT AUX CONTR. 44 : C QSI(NNVARI) = DERIVEE DU CRITERE PAR RAPPORT AUX VARIABLES Q 45 : C KERRE = INDICE QUI REGIT LES ERREURS 46 : C = 99 SI LA FORMULATION MECANIQUE N'EST PAS 47 : C DISPONIBLE POUR LE MODELE CONSIDERE OU S'IL Y 48 : C A INCOMPATIBILITE ENTRE MFR ET IFOUR 49 : C ==================================================================== 50 : IMPLICIT INTEGER(I-N) 51 : IMPLICIT REAL*8 (A-H,O-Z) 52 : 53 : -INC CCOPTIO 54 : C 55 : DIMENSION SIGG(*),VARR(*),XMAT(*),XCAR(*),TRAC(*),R(*),S(*), 56 : 1XMU(*),QSI(*),SIGGD(*),W(*) 57 : DIMENSION DD(NSTRS,NSTRS),BB(NSTRS,NNVARI),F(NCOURB,2) 58 : DIMENSION DDINV(NSTRS,NSTRS) 59 : C 60 : C ================================= 61 : C REMPLISSAGE DES MATRICES DD(HOOK) 62 : C ================================= 63 : C 63 : CALL ELAST1(1,IFOURB,VARR,NNVARI,XMAT,NCOMAT,YUNGV,XNUV, 64 : 1 XCAR,ICARA,MFR,NSTRS,DD,DDINV,KERRE,INDIC,ITHHER) 65 : C 66 : C 67 : C (SI LA FORMULATION MECANIQUE EST NON DISPONIBLE OU S'IL Y A 68 : C INCOMPATIBILITE ENTRE IFOUR ET MFR, KERRE EST NON NUL:) 69 : IF (KERRE.NE.0) GOTO 100 70 : C 71 : C ======================= 72 : C CALCUL DE LA MATRICE BB 73 : C ======================= 73 : CALL ZERO(BB,NSTRS,NNVARI) 74 : XD=VARR(3) 75 : DO 10 I=1,NSTRS 76 : 10 BB(I,2)=-SIGG(I)/(1.D0-XD) 77 : C 78 : C ========================= 79 : C CALCUL DES VECT. R ET XMU 80 : C ========================= 81 : C 82 : XNU=XMAT(2) 83 : EPSD=XMAT(6) 84 : DC=XMAT(7) 85 : EPSR=XMAT(8) 86 : P=VARR(1) 87 : C -------------------- 88 : C DEVIATEUR DES CONTR. 89 : C -------------------- 90 : TRACE=SIGG(1)+SIGG(2)+SIGG(3) 91 : DO 30 I=1,NSTRS 92 : A=0.D0 93 : IF (I.LE.3) A=1.D0/3.D0 94 : SIGGD(I)=SIGG(I)-A*TRACE 95 : 30 CONTINUE 96 : C 97 : C ----------------------------------- 98 : C CONTRAINTE EQUIVALENTE DE VON MISES 99 : C ----------------------------------- 100 : SIGEQI=PROCON(SIGGD,SIGGD,NSTRS) 101 : SIGEQI=DSQRT((3.D0/2.D0)*SIGEQI) 102 : DO 50 I=1,NSTRS 103 : A=1.D0 104 : IF (I.GT.3) A=2.D0 105 : R(I)=((3.D0*SIGGD(I))/(2.D0*(1.D0-XD)*SIGEQI))*A 106 : XMU(I)=R(I) 107 : 50 CONTINUE 108 : C 109 : C ================= 110 : C CALCUL DU VECT. S 111 : C ================= 112 : C 113 : S(1)=1.D0 114 : C 115 : TRIAXI=TRACE/(3.D0*SIGEQI) 116 : TRIAXI=TRIAXI*TRIAXI 117 : TRIAXI=3.D0*(1.D0-2.D0*XNU)*TRIAXI+(2.D0*(1.D0+XNU))/3.D0 118 : C 119 : C -------------------------------------- 120 : C CALCUL DE LA CONSTANTE MATERIAU S0PRIM 121 : C -------------------------------------- 122 : C 123 : C .......................................................... 124 : C CALCUL DES COEFF. K ET M A PARTIR DE LA COURBE DE TRACTION 125 : C XKM ATTEND LA COURBE DE TRACTION (SIGMA,EPSILON_PLASTIQUE) 126 : C OR TRAC CONTIENT (EPSILON_PLASTIQUE,SIGMA) 127 : C .......................................................... 128 : DO 70 I=1,NCOURB 129 : XTRAC=TRAC(2*I-1) 130 : TRAC(2*I-1)=TRAC(2*I) 131 : TRAC(2*I)=XTRAC 132 : 70 CONTINUE 132 : CALL XKM(NCOURB,TRAC,XK,XM,W,F) 133 : DO 80 I=1,NCOURB 134 : XTRAC=TRAC(2*I-1) 135 : TRAC(2*I-1)=TRAC(2*I) 136 : TRAC(2*I)=XTRAC 137 : 80 CONTINUE 138 : SIGY=TRAC(2) 139 : XM2=(2.D0+XM)/XM 140 : XM1=(1.D0+XM)/XM 141 : S0PRI1=(EPSR**XM2)-(EPSD**XM2) 142 : S0PRI1=(XK*XK*S0PRI1)/XM2 143 : S0PRI2=(EPSR**XM1)-(EPSD**XM1) 144 : S0PRI2=(2.D0*SIGY*XK*S0PRI2)/XM1 145 : S0PRI3=SIGY*SIGY*(EPSR-EPSD) 146 : S0PRIM=(S0PRI1+S0PRI2+S0PRI3)/DC 147 : C 148 : C ----------------------------------------------------------- 149 : C "DERTRA" CALCULE LA DERIVEE DE LA COURBE DE TRACTION EN VIR 150 : C ----------------------------------------------------------- 151 : VIR=VARR(2) 152 : N2COUR=2*NCOURB 152 : CALL DERTRA(N2COUR,TRAC,VIR,Y,RPRIM,RINF,RSUP) 153 : C 154 : C 155 : S(2)=((Y**2.D0)*TRIAXI)/(S0PRIM*(1.D0-XD)) 156 : C 157 : C --------------------------------------------- 158 : C SI LE SEUIL D'ENDOMMAGEMENT N'EST PAS ATTEINT 159 : C --------------------------------------------- 160 : IF (INDIC.EQ.0) S(2)=0.D0 161 : C 162 : C =================== 163 : C CALCUL DU VECT. QSI 164 : C =================== 165 : C 166 : QSI(1)=-RPRIM 167 : QSI(2)=Y/(1.D0-XD) 168 : C 169 : 100 CONTINUE 170 : RETURN 171 : END 172 : 173 : 174 : 175 :
© Cast3M 2003 - All rights reserved.
Disclaimer