1 : C COMDEF SOURCE FANDEUR 14/01/22 21:15:03 7891 2 : SUBROUTINE COMDEF(iwrk53,necou,iecou,xecou) 3 : 4 : * renseigne en partie les COMMON 5 : ******************************************* 6 : * ENTREES 7 : ******************************************* 8 : * 9 : * MELE : numéro élément fini 10 : * NCARR : nombre de composantes de caratéristiques géométriques 11 : * NSTRS : nombre de composantes de contrainte 12 : * NMATT : nombre de composantes de propriétés matériau 13 : * CMATE : nom du matériau 14 : * MATE : numero du materiau 15 : * ISTEP : indicateur d'action pour calcul nonlocal 16 : * =0 dans le cas d'un calcul local (normal) 17 : * =1 ou 2 dans le cas d'un calcul nonlocal 18 : * =1 pour calcul des fonctions seuil uniquement 19 : * =2 pour calcul des variables dissipatives a partir 20 : * des fonctions seuil moyennees prealablement par nloc 21 : * INPLAS : numéro de matériau inélastique 22 : * NPINT : nombre de points d'intégration 23 : * IPMAIL : pointeur du maillage 24 : * NUMAT : nombre de composantes materiau 25 : * 26 : ******************************************* 27 : * SORTIES 28 : ******************************************* 29 : * 30 : * LOGVIS : booléen pour les modèles visqueux et endommageables 31 : * de Lemaitre 32 : * LUNI1 : booléens pour le modèle ACIER_UNI 33 : * LUNI2 : ( INPLAS.EQ.40) 34 : * Les sorties sont passées par des communs (NECOU,IECOU,XECOU) 35 : * 36 : ****************************************** 37 : * 38 : IMPLICIT INTEGER(I-N) 39 : IMPLICIT REAL*8(A-H,O-Z) 40 : * 41 : -INC CCOPTIO 42 : -INC SMCHAML 43 : -INC SMELEME 44 : -INC SMCOORD 45 : -INC CCHAMP 46 : -INC DECHE 47 : * 48 : * Segment NECOU utilisé dans ECOINC 49 : * 50 : SEGMENT NECOU 51 : INTEGER NCOURB,IPLAST,IT,IMAPLA,ISOTRO, 52 : . ITYP,IFOURB,IFLUAG, 53 : . ICINE,ITHER,IFLUPL,ICYCL,IBI, 54 : . JFLUAG,KFLUAG,LFLUAG, 55 : . IRELAX,JNTRIN,MFLUAG,JSOUFL,JGRDEF 56 : ENDSEGMENT 57 : * 58 : * Segment IECOU: sert de fourre-tout pour les initialisations 59 : * d'entiers 60 : * 61 : SEGMENT IECOU 62 : INTEGER NYOG,NYNU,NYALFA,NYSMAX,NYN,NYM,NYKK,NYALF1, 63 : . NYBET1,NYR,NYA,NYRHO,NSIGY,NNKX,NYKX,IND,NSOM,NINV, 64 : . NINCMA,NCOMP,JELEM,LEGAUS,INAT,NCXMAT,LTRAC,MFRBI, 65 : . IELE,NHRM,NBNNBI,NBELMB,ICARA,LW2BI,NDEF,NSTRSS, 66 : . MFR1,NBGMAT,NELMAT,MSOUPA,NUMAT1,LENDO,NBBB,NNVARI, 67 : . KERR1,MELEMB,NYOG1,NYNU1,NYALFT1,NYSMAX1,NYN1,NYM1, 68 : . NYKK1,NYALF2,NYBET2,NYR1,NYA1,NYQ1,NYRHO1,NSIGY1 69 : ENDSEGMENT 70 : * 71 : * Segment XECOU: sert de fourre-tout pour les initialisations 72 : * de réels 73 : * 74 : SEGMENT XECOU 75 : REAL*8 DTOPTI,TSOM,TCAR,DTT,DT,TREFA,TEMP00 76 : ENDSEGMENT 77 : * 78 : wrk53 = iwrk53 79 : * 80 : c* On utilise JNPLAS (locale) en lieu et place de INPLAS (segment) 81 : c* tout au long du present sousprogramme 82 : jnplas = INPLAS 83 : * 84 : * mecanique 85 : * 86 : LOGVIS=.FALSE. 87 : * 88 : * LOGVIS est vrai pour les matériaux visqueux, endommageables de 89 : * Lemaitre et Coulomb (inplas=jnplas = 34 ) 90 : * 91 : * ---> Viscoplastique et Fluage 92 : * 93 : IF (JNPLAS.EQ. 17 .OR. JNPLAS.EQ. 19 .OR. 94 : 2 JNPLAS.EQ. 20 .OR. JNPLAS.EQ. 21 .OR. JNPLAS .EQ. 22 .OR. 95 : 2 JNPLAS.EQ. 23 .OR. JNPLAS.EQ. 24 .OR. JNPLAS .EQ. 25 .OR. 96 : 3 JNPLAS .EQ. 61 .OR.JNPLAS .EQ. 63 .OR. 97 : 4 JNPLAS .EQ. 65 .OR.JNPLAS .EQ. 53 .OR.JNPLAS .EQ. 29 .OR. 98 : 5 JNPLAS .EQ. 44 .OR. JNPLAS .EQ. 45 .OR. 99 : 6 JNPLAS .EQ. 70 .OR. JNPLAS .EQ. 74 .OR. 100 : 7 JNPLAS .EQ. 76 .OR.JNPLAS .EQ. 77 .OR. JNPLAS.EQ.82 .OR. 101 : 8 JNPLAS .EQ. 84 .OR. JNPLAS.EQ.85 .OR.JNPLAS .EQ. 86 .OR. 102 : 9 JNPLAS .EQ. 106 .OR. JNPLAS .EQ. 102 .OR. 103 : a JNPLAS .EQ. 107 .OR. JNPLAS .EQ. 108 .OR. 104 : b JNPLAS .EQ. 134 .OR. JNPLAS .EQ. 135 .OR. 105 : c JNPLAS .EQ. 136 .OR. JNPLAS .EQ. 137 .OR. 106 : d JNPLAS .EQ. 142 .OR. JNPLAS .EQ. 146 .OR. 107 : e JNPLAS .EQ. 153 .OR. JNPLAS .EQ. 154 ) THEN 108 : LOGVIS=.TRUE. 109 : * 110 : * ---> PLastique endommageable de Lemaitre 111 : * 112 : ELSE IF (JNPLAS.EQ.26 .OR. JNPLAS .EQ. 130 ) THEN 113 : LOGVIS=.TRUE. 114 : * 115 : * ---> Plastique Coulomb 116 : * 117 : ELSE IF (JNPLAS.EQ.34) THEN 118 : LOGVIS=.TRUE. 119 : * 120 : ENDIF 121 : * 122 : LUNI1=.FALSE. 123 : LUNI2=.FALSE. 124 : * 125 : * le cas LUNI1 = VRAI correspond au materiau ACIER_UNI 126 : IF(JNPLAS.EQ.40)THEN 127 : IF (MFRbi.EQ.1.AND.IFOUR.LE.0)LUNI1=.TRUE. 128 : IF ((MFRbi.EQ.3.OR.MFRbi.EQ.9).AND.IFOUR.EQ.2)LUNI2=.TRUE. 129 : ENDIF 130 : * 131 : * INITIALISATIONS 132 : * 133 : NYOG=0 134 : NYNU=0 135 : NYALFA=0 136 : NYSMAX=0 137 : NYN=0 138 : NYM=0 139 : NYKK=0 140 : NYALF1=0 141 : NYBET1=0 142 : NYR=0 143 : NYA=0 144 : NYRHO=0 145 : NSIGY=0 146 : NNKX=0 147 : NYKX=0 148 : IND=0 149 : NYOG1=0 150 : NYNU1=0 151 : NYALFT1=0 152 : NYSMAX1=0 153 : NYN1=0 154 : NYM1=0 155 : NYKK1=0 156 : NYALF2=0 157 : NYBET2=0 158 : NYR1=0 159 : NYA1=0 160 : NYQ1=0 161 : NYRHO1=0 162 : NSIGY1=0 163 : * 164 : JECHER=0 165 : * 166 : ITHHER = 0 167 : KERR1=0 168 : TREFA = 20. 169 : if (jnplas.eq.43) TREFA=-1.E35 170 : * 171 : c MFRbi =NUMMFR(MELE) 172 : IELE=NUMGEO(MELE) 173 : NHRM=NIFOUR 174 : MELEME=IPMAIL 175 : melemb=meleme 176 : c NBNNbi=NUM(/1) 177 : c NBELMb=NUM(/2) 178 : ICARA=NCARR 179 : IF(MFRbi.EQ.7.OR.MFRbi.EQ.13)ICARA=NCARR+IDIM 180 : c LW=200 181 : c LW2bi=150 182 : NDEF=NSTRS 183 : NSTRSS=NSTRS 184 : * 185 : * cas milieux poreux 186 : IF(MFRbi.EQ.33.AND.MATE.EQ.1) NSTRSS=NSTRS-1 187 : * 188 : NCXMAT=NMATT 189 : IF(JNPLAS.EQ.3)THEN 190 : NCXMAT=NMATT+7 191 : END IF 192 : LTRAC=260 193 : IF (JNPLAS.EQ.51) LENDO=260 194 : * 195 : * test sur istep 196 : * 197 : IF (ISTEP .GT. 2 .OR. ISTEP .LT. 0) THEN 198 : KERRE=54 199 : END IF 200 : * 201 : PRECIS = 1.e-8 202 : * test sur jnplas=inplas pour recuperer eventuellement d'autres infos 203 : * 204 : * modeles non lineaires externes 205 : * 206 : IF (JNPLAS.LT.0) THEN 207 : * 208 : * Convention : tous les modeles externes doivent sortir les 209 : * deformations inelastiques CUMULEES, et non les increments. 210 : * Convention sans incidence sur 'NON_LINEAIRE' 'UTILISATEUR' car 211 : * l'integrateur externe generique UMAT n'a pas de sortie prevue 212 : * pour les deformations inelastiques. 213 : * 214 : IND = 1 215 : * 216 : * Modeles 'VISCO_EXTERNE' : integres par CCREEP 217 : * On adopte les parametres par defaut des modeles viscoplastiques 218 : * (cf. ci-dessous) 219 : * 220 : IF (JNPLAS.EQ.-2) THEN 221 : MSOUPA = 200 222 : PRECIS = 5.d-7 223 : ENDIF 224 : * 225 : * modeles de viscoplasticite 226 : * 227 : * le nombre max de sous pas 228 : * 229 : * et on met ind = 1 230 : * 231 : ELSE IF (JNPLAS.EQ. 17 .OR. JNPLAS.EQ. 19 .OR. JNPLAS.EQ. 21 .OR. 232 : 2 JNPLAS .EQ. 20 .OR. JNPLAS .EQ. 61 .OR.JNPLAS .EQ. 65 .OR. 233 : 4 JNPLAS .EQ. 22 .OR. JNPLAS .EQ. 23 .OR.JNPLAS .EQ. 24 .OR. 234 : 6 JNPLAS .EQ. 25 .OR. JNPLAS .EQ. 29 .OR.JNPLAS .EQ. 70 .OR. 235 : 7 JNPLAS .EQ. 43 .OR. JNPLAS .EQ. 44 .OR.JNPLAS .EQ. 63 .OR. 236 : 8 JNPLAS .EQ. 45 .OR. JNPLAS .EQ. 53 .OR.JNPLAS .EQ. 66 .OR. 237 : a JNPLAS .EQ. 74 .OR. JNPLAS .EQ. 76 .OR.JNPLAS .EQ. 84 .OR. 238 : b JNPLAS .EQ. 77 .OR. JNPLAS .EQ. 82 .OR.JNPLAS .EQ. 85 .OR. 239 : d JNPLAS .EQ. 86 .OR. JNPLAS .EQ. 102 .OR.JNPLAS .EQ. 108 .OR. 240 : e JNPLAS .EQ. 106 .OR. JNPLAS .EQ. 107 .OR.JNPLAS .EQ. 142 .OR. 241 : f JNPLAS .EQ. 153 .OR. JNPLAS .EQ. 154) THEN 242 : * 243 : IND = 1 244 : * 245 : if (jnplas.eq.44.or.jnplas.eq.45) then 246 : MSOUPA = 2000 247 : else IF (JNPLAS.EQ.107.OR.JNPLAS.EQ.108) THEN 248 : MSOUPA = 2000 249 : else 250 : MSOUPA = 200 251 : endif 252 : PRECIS = 5.d-7 253 : * 254 : ELSE IF ( JNPLAS .EQ. 130 ) THEN 255 : IND = 1 256 : MSOUPA = 200 257 : PRECIS = 5.d-7 258 : ELSE IF ( JNPLAS .EQ. 136 .OR. JNPLAS .EQ. 137 .OR. 259 : 2 JNPLAS .EQ. 138 .OR. JNPLAS .EQ. 139 ) THEN 260 : IND = 1 261 : MSOUPA = 200 262 : PRECIS = 5.d-7 263 : ENDIF 264 : * 265 : IF (JNPLAS.EQ.2.OR.JNPLAS.EQ.27) THEN 266 : PRECIS = 1.e-8 267 : ELSE IF ( JNPLAS .EQ. 15) THEN 268 : PRECIS = 5.d-7 269 : ELSE IF ( JNPLAS .EQ. 51) THEN 270 : PRECIS = 1.d-4 271 : ENDIF 272 : 273 : IF(MFRbi.EQ.7.OR.MFRbi.EQ.13.OR.LUNI1)THEN 274 : NBBB=NBNNbi 275 : ENDIF 276 : * 277 : TSOM = 0.D0 278 : NSOM = 0 279 : NINV = 0 280 : NINCMA = 0 281 : TCAR = 0.D0 282 : NCOMP = 0 283 : c 284 : c mise a 0 des variables du common necou si besoin 285 : 286 : c les bonnes valeurs sont attribuees selon les modeles 287 : c initialisations selon les cas 288 : c 289 : IF (jnplas.NE.2) THEN 290 : c 291 : IF(NPINT.NE.0.AND.MELE.EQ.28) THEN 292 : IFOURB=-2 293 : MFR1=1 294 : IF(JNPLAS.EQ.66) MFR1=MFRbi 295 : ELSE 296 : MFR1=MFRbi 297 : IFOURB=IFOUR 298 : ENDIF 299 : * 300 : * cas des coques minces 301 : * 302 : IF (MFRbi.EQ.3) THEN 303 : * en materiau unidirectionnel plastique, on met IFOURB a -2 304 : IF (MATE.EQ.4.AND.JNPLAS.NE.0) IFOURB=-2 305 : ENDIF 306 : * 307 : NCOURB=0 308 : IPLAST=0 309 : IMAPLA=1 310 : IT=1 311 : ISOTRO=0 312 : ITYP=0 313 : * 314 : * correspondance ( mfrbi,ifour) et ityp faite dans ecoinc 315 : * 316 : IFLUAG=0 317 : ICINE=0 318 : ITHER=0 319 : IFLUPL=0 320 : ICYCL=0 321 : IBI=0 322 : JFLUAG=0 323 : JELEM =0 324 : LFLUAG=0 325 : IRELAX=0 326 : JNTRIN=0 327 : MFLUAG=0 328 : LEGAUS=0 329 : JGRDEF=0 330 : * 331 : ENDIF 332 : * 333 : NUMAT1=NUMAT 334 : IF(JNPLAS.EQ.26)THEN 335 : INAT=JNPLAS 336 : NNVARI=2 337 : NUMAT=NUMAT+4 338 : ELSE IF (JNPLAS.EQ.29.OR.JNPLAS.EQ.142) THEN 339 : INAT=JNPLAS 340 : ELSE 341 : INAT=0 342 : ENDIF 343 : * 344 : RETURN 345 : END 346 : 347 : 348 :
© Cast3M 2003 - All rights reserved.
Disclaimer