1 : C CMAZZZ SOURCE KICH 09/09/11 21:16:29 6505 2 : SUBROUTINE CMAZZZ(WRK52,WRK53,WRK54,NVARI,Iecou) 3 : C MAZZZ SOURCE AM 98/12/23 21:39:16 3409 4 : C 5 : C calcule la deformation initiale et l'increment de deformation 6 : C a partir de la contrainte initiale et l'increment de contrainte 7 : C elastique puis appelle la subroutine MAZARS 8 : C 9 : C 10 : C variables en entree 11 : C 12 : C WRK0,KRK1,WRK5 pointeurs sur des segments de travail 13 : C 14 : C NSTRS1 nombre de composantes dans les vecteurs des contraintes 15 : C et les vecteurs des deformations 16 : C 17 : C NVARI nombre de variables internes (doit etre egal a 2) 18 : C 19 : C NMATT nombre de constantes du materiau 20 : C 21 : C ISTEP flag utilise pour separer les etapes dans un calcul non local 22 : C ISTEP=0 -----> calcul local 23 : C ISTEP=1 -----> calcul non local etape 1 on calcule les seuils 24 : C ISTEP=2 -----> calcul non local etape 2 on continue le calcul 25 : C a partir des seuils moyennes 26 : C 27 : C 28 : C variables en sortie 29 : C 30 : C VARF variables internes finales dans WRK0 31 : C 32 : C SIGF contraintes finales dans WRK0 33 : C 34 : C Modif L.Bode - 09/10/92 - Traitement particulier des coques 35 : C Modif L.Bode - 14/10/92 - Modifications complementaires 36 : C 37 : c KICH XCARB<- XCAR , CMAZAR <- MAZARS 38 : 39 : IMPLICIT INTEGER(I-N) 40 : IMPLICIT REAL*8(A-H,O-Z) 41 : -INC CCOPTIO 42 : -INC DECHE 43 : * 44 : SEGMENT IECOU 45 : * COMMON/IECOU/NYOG,NYNU,NYALFA,NYSMAX,NYN,NYM,NYKK, 46 : INTEGER icow1,icow2,icow3,icow4,icow5,icow6,icow7, 47 : C INTEGER NYOG, NYNU, NYALFA,NYSMAX,NYN, NYM, NYKK, 48 : 1 icow8,icow9,icow10,icow11,icow12,icow13,icow14,icow15,icow16, 49 : C . NYALF1,NYBET1,NYR, NYA, NYRHO,NSIGY, NNKX, NYKX, IND, 50 : 2 icow17,icow18,icow19,icow20,icow21,icow22,icow23,icow24, 51 : C . NSOM, NINV, NINCMA,NCOMP, JELEM, LEGAUS,INAT, NCXMAT, 52 : 3 icow25,icow26,icow27,icow28,icow29,icow30,ICARA, 53 : C . LTRAC, MFR, IELE, NHRM, NBNN, NBELEM,ICARA, 54 : 4 icow32,icow33,NSTRS1,MFR1,icow36,icow37,icow38, 55 : C . LW2, NDEF, NSTRSS,MFR1, NBGMAT,NELMAT,MSOUPA, 56 : 5 icow39,icow40,icow41,icow42,icow43,icow44 57 : C . NUMAT1,LENDO, NBBB, NNVARI,KERR1, MELEME 58 : INTEGER icow45,icow46,icow47,icow48,icow49,icow50, 59 : . icow51,icow52,icow53,icow54,icow55,icow56 60 : . icow57,icow58 61 : ENDSEGMENT 62 : 63 : 64 : SEGMENT WRKK2 65 : REAL*8 EPSILI(NSTRSV) 66 : END SEGMENT 67 : * 68 : SEGMENT WRK6 69 : REAL*8 SIG0S(NSTRS),DEPSTS(NSTRS) 70 : END SEGMENT 71 : * 72 : INTEGER NVARI 73 : INTEGER KCAS,IRTD,ISTRS 74 : REAL*8 PREC,EPAI,FAC,AUX,AUX1,AUX2,YOUN,XNU 75 : REAL*8 UN 76 : PARAMETER (UN=1.D0) 77 : KERRE=0 78 : YOUN = XMAT(1) 79 : XNU = XMAT(2) 80 : C 81 : C ON CALCULE LES CONTRAINTES VRAIES DANS LE CAS DES COQUES 82 : C 83 : C print*,'dans mazzzz MFR1=', mfr1 84 : IF (MFR1 .EQ. 9) THEN 85 : EPAI=XCARB(1) 86 : SEGINI WRK6 87 : DO 101 ISTRS=1,NSTRS1 88 : SIG0S(ISTRS)=SIG0(ISTRS) 89 : DEPSTS(ISTRS)=DEPST(ISTRS) 90 : 101 CONTINUE 91 : NSTRSV=4 92 : IFOUR2=-2 93 : C Modif L.Bode - 14/10/92 94 : C Dans le cas des coques, on force la dimension a 2 pour MAZARS 95 : C ie on travaille en contraintes planes 96 : JDIM =2 97 : C Fin modif L.Bode 98 : DO 102 ISTRS=1,2 99 : SIG0(ISTRS)=SIG0S(ISTRS)/EPAI 100 : 102 CONTINUE 101 : DEPST(3)=0.D0 102 : DEPST(4)=DEPSTS(3) 103 : SIG0(3)=0.D0 104 : SIG0(4)=SIG0S(3)/EPAI 105 : ELSE IF (MFR1 .EQ. 1) THEN 106 : NSTRSV=NSTRS1 107 : IFOUR2=IFOUR 108 : C Modif L.Bode - 14/10/92 109 : C Pour les elts massifs, on utilise la vraie dimension 110 : JDIM = IDIM 111 : C Fin modif L.Bode 112 : ELSE 113 : PRINT*,'MFR1=',MFR1 114 : KERRE=57 115 : RETURN 116 : END IF 117 : SEGINI WRKK2 118 : 119 : 120 : C 121 : C calcul de la matrice elastique 122 : C 123 : CMATE = 'ISOTROPE' 124 : KCAS=1 125 : * print*,'increment de deformation elastique' 125 : CALL DOHMAS(XMAT,CMATE,IFOUR2,NSTRSV,KCAS,DDHOOK,IRTD) 126 : * DO ISTRS=1,NSTRS1 127 : * print*,(DDHOOK(ISTRS,J),j=1,nstrs) 128 : * print*,DEPST(ISTRS) 129 : * END DO 130 : IF ( IRTD .EQ. 1) THEN 131 : C 132 : C calcul de l'increment de contrainte 133 : C 133 : CALL MATVE1 (DDHOOK,DEPST,NSTRSV,NSTRSV,DSIGT,1) 134 : C 135 : C 136 : C inversion de cette matrice 137 : C 138 : PREC=1.D-08 138 : CALL DOHMAS(XMAT,CMATE,IFOUR2,NSTRSV,2,DDHOOK,IRTD) 139 : * DO ISTRS=1,NSTRSV 140 : * print*,(DDHOOK(ISTRS,J),j=1,nstrsv) 141 : * END DO 142 : * print*,'appel a invalm' 142 : CALL INVALM(DDHOOK,NSTRSV,NSTRSV,IRTD,PREC) 143 : IF (IRTD.EQ.0)THEN 144 : C 145 : C calcul des deformations du materiau elastique lineaire 146 : C 147 : * print*,'appel a matve1' 147 : CALL MATVE1 (DDHOOK,SIG0,NSTRSV,NSTRSV,EPSILI,1) 148 : C 149 : C modification pour tenir compte de l'endommagement 150 : C 151 : DO 100 ISTRS=1,NSTRSV 152 : EPSILI(ISTRS)=EPSILI(ISTRS)+EPIN0(ISTRS) 153 : 100 CONTINUE 154 : 155 : C 156 : C appel a la routine MAZARS 157 : C 158 : C Modif L.Bode - 14/10/92 159 : C On envoie la dimension et le numero de la formulation 160 : C ( Elts Coques JDIM =2 , IFOUR2 = -2 => contraintes planes 161 : C Elts Massifs JDIM = IDIM ,IFOUR2 = IFOUR) 162 : * print*,'appel a mazars' 163 : icarbi=icara 163 : CALL CMAZAR (WRK52,WRK53,WRK54,WRKK2,NSTRSV,NVARI, 164 : 1 ICARbi,JDIM,IFOUR2) 165 : icara=icarbi 166 : C Fin modif L.Bode 167 : C 168 : C ON RECALCULE LES CONTRAINTES EFFECTIVES POUR LES COQUES 169 : C 170 : * print*,'apres mazars' 171 : IF (MFR1 .EQ. 9) THEN 172 : 173 : 174 : C 175 : C ON MET A JOUR DE FACON NON LINEAIRE LA PARTIE MEMBRANE 176 : C ET LES PARTIES FLEXION ET EFFORTS 177 : C TRANCHANTS LE CAS ECHEANT 178 : C 179 : FAC=(EPAI**3)/12.D0 180 : AUX =FAC*YOUN/(1.D0-XNU*XNU) 181 : AUX1=FAC*YOUN*.5D0/(1.D0+XNU) 182 : AUX2=EPAI*YOUN*.5D0/(1.d0+XNU)/1.2d0 183 : DO 103 ISTRS=1,NSTRS1 184 : SIG0(ISTRS)=SIG0S(ISTRS) 185 : DEPST(ISTRS)=DEPSTS(ISTRS) 186 : 103 CONTINUE 187 : 188 : DO 104 ISTRS=1,2 189 : SIGF (ISTRS)=SIGF(ISTRS)*EPAI 190 : 104 CONTINUE 191 : SIGF(3)=SIGF(4)*EPAI 192 : SIGF(4)=SIG0(4)+AUX*(DEPST(4)+XNU*DEPST(5)) 193 : SIGF(5)=SIG0(5)+AUX*(DEPST(5)+XNU*DEPST(4)) 194 : SIGF(6)=SIG0(6)+AUX1*DEPST(6) 195 : SIGF(7)=SIG0(7)+AUX2*DEPST(7) 196 : SIGF(8)=SIG0(8)+AUX2*DEPST(8) 197 : SEGSUP WRK6 198 : END IF 199 : ELSE 200 : print*,'erreur dans invalm' 201 : KERRE=56 202 : END IF 203 : ELSE 204 : print*,'erreur dans dohmas' 205 : KERRE=56 206 : END IF 207 : SEGSUP WRKK2 208 : RETURN 209 : END 210 : 211 : 212 : 213 : 214 : 215 : 216 : 217 : 218 : 219 :
© Cast3M 2003 - All rights reserved.
Disclaimer