1 : C DEFINI SOURCE CHAT 11/03/16 21:19:00 6902 2 : SUBROUTINE DEFINI(MELE,NCARR,NSTRS,NMATT,CMATE,MATE, 3 : . ISTEP,INPLAS,NPINT,IPOTAB,IVADEF, 4 : . IPMAIL,IVAMAT, 5 : . ITHHER,NUMAT,NUCAR,LOGVIS, 6 : . LUNI1,LUNI2,LW,KERRE) 7 : * 8 : ******************************************* 9 : * ENTREES 10 : ******************************************* 11 : * 12 : * MELE : numéro élément fini 13 : * NCARR : nombre de composantes de caratéristiques géométriques 14 : * NSTRS : nombre de composantes de contrainte 15 : * NMATT : nombre de composantes de propriétés matériau 16 : * CMATE : nom du matériau 17 : * MATE : numero du materiau 18 : * ISTEP : indicateur d'action pour calcul nonlocal 19 : * =0 dans le cas d'un calcul local (normal) 20 : * =1 ou 2 dans le cas d'un calcul nonlocal 21 : * =1 pour calcul des fonctions seuil uniquement 22 : * =2 pour calcul des variables dissipatives a partir 23 : * des fonctions seuil moyennees prealablement par nloc 24 : * INPLAS : numéro de matériau inélastique 25 : * NPINT : nombre de points d'intégration 26 : * IPOTAB : pointeur sur segment table 27 : * IVADEF : pointeur sur un segment mptval de deformations 28 : * IPMAIL : pointeur du maillage 29 : * IVAMAT : pointeur sur un segment mptval de materiau 30 : * ITHHER : =0 si pas de chargement thermique 31 : * =1 si chargement thermique mais materiau constant 32 : * =2 si chargement thermique et mat. dependant de la temperature 33 : * NUMAT : nombre de composantes du melval de imat 34 : * NUCAR : nombre de composantes du melval de icar 35 : * 36 : ******************************************* 37 : * SORTIES 38 : ******************************************* 39 : * 40 : * LOGVIS : booléen pour les modèles visqueux et endommageables 41 : * de Lemaitre 42 : * LUNI1 : booléens pour le modèle ACIER_UNI 43 : * LUNI2 : ( INPLAS.EQ.40) 44 : * NUCAR : nombre de composantes du melval de icar ( entrée modifiée) 45 : * Les sorties sont passées par des communs (NECOU,IECOU,XECOU) 46 : * 47 : ****************************************** 48 : * 49 : IMPLICIT INTEGER(I-N) 50 : IMPLICIT REAL*8(A-H,O-Z) 51 : * 52 : -INC CCOPTIO 53 : -INC SMCHAML 54 : -INC SMELEME 55 : -INC SMCOORD 56 : -INC SMMODEL 57 : -INC SMINTE 58 : -INC CCHAMP 59 : * 60 : SEGMENT MPTVAL 61 : INTEGER IPOS(NS) ,NSOF(NS) 62 : INTEGER IVAL(NCOSOU) 63 : CHARACTER*16 TYVAL(NCOSOU) 64 : ENDSEGMENT 65 : * 66 : * Commun NECOU utilisé dans ECOINC 67 : * 68 : COMMON/NECOU/NCOURB,IPLAST,IT,IMAPLA,ISOTRO, 69 : . ITYP,IFOURB,IFLUAG, 70 : . ICINE,ITHER,IFLUPL,ICYCL,IBI, 71 : . JFLUAG,KFLUAG,LFLUAG, 72 : . IRELAX,JNTRIN,MFLUAG,JSOUFL,JGRDEF 73 : * 74 : * Commun IECOU: sert de fourre-tout pour les initialisations 75 : * d'entiers 76 : * 77 : COMMON/IECOU/NYOG,NYNU,NYALFA,NYSMAX,NYN,NYM,NYKK, 78 : . NYALF1,NYBET1,NYR,NYA,NYRHO,NSIGY,NNKX,NYKX,IND, 79 : . NSOM,NINV,NINCMA,NCOMP,JELEM,LEGAUS,INAT,NCXMAT, 80 : . LTRAC,MFR,IELE,NHRM,NBNN,NBELEM,ICARA, 81 : . LW2,NDEF,NSTRSS,MFR1,NBGMAT,NELMAT,MSOUPA, 82 : . NUMAT1,LENDO,NBBB,NNVARI,KERR1,MELEME, 83 : . icou45,icou46,icou47,icou48,icou49,icou50, 84 : . Icow51,icou52,icou53,icou54,icou55,icou56 85 : . icou57,icou58 86 : * 87 : * Commun XECOU: sert de fourre-tout pour les initialisations 88 : * de réels 89 : * 90 : COMMON/XECOU/DTOPTI,TSOM,TCAR,DTT,DT,TREFA,TEMP0 91 : LOGICAL LUNI1,LUNI2 92 : LOGICAL LOGVIS,LOGIN,LOGRE 93 : CHARACTER*72 CHARRE 94 : CHARACTER*8 CMATE 95 : * 96 : * 97 : * 98 : * LOGVIS est vrai pour les matériaux visqueux, endommageables de 99 : * Lemaitre et Coulomb (inplas = 34 ) 100 : * 101 : * ---> Viscoplastique et Fluage 102 : * 103 : LOGVIS=.FALSE. 104 : * 105 : IF ( INPLAS .EQ. 17 .OR. 106 : 2 ( INPLAS .GE. 19 .AND. INPLAS .LE. 25) .OR. 107 : 4 INPLAS .EQ. 61 .OR. INPLAS .EQ. 63 .OR. 108 : 4 INPLAS .EQ. 65 .OR. INPLAS .EQ. 53 .OR. 109 : 1 INPLAS .EQ. 29 .OR. INPLAS .EQ. 76 .OR. 110 : 2 INPLAS .EQ. 44 .OR. INPLAS .EQ. 45 .OR. 111 : 2 INPLAS .EQ. 70 .OR. INPLAS .EQ. 74 .OR. 112 : 9 INPLAS .EQ. 77 .OR. INPLAS .EQ. 82 .OR. 113 : 9 INPLAS .EQ. 84 .OR. INPLAS .EQ. 85 .OR. 114 : 9 INPLAS .EQ. 86 .OR. INPLAS .EQ. 94 .OR. 115 : 9 INPLAS .EQ. 95 .OR. INPLAS .EQ.100 .OR. 116 : 9 INPLAS .EQ. 101 .OR. INPLAS .EQ.102 .OR. 117 : 9 INPLAS .EQ. 141 .OR. INPLAS .EQ.143 118 : 9 ) THEN 119 : 120 : LOGVIS=.TRUE. 121 : ENDIF 122 : * 123 : * ---> PLastique endommageable de Lemaitre 124 : * 125 : IF (INPLAS.EQ.26) LOGVIS=.TRUE. 126 : * 127 : * ---> Plastique Coulomb 128 : * 129 : IF (INPLAS.EQ.34) LOGVIS=.TRUE. 130 : * ---> Modele VISCOHINTE 131 : 132 : IF (INPLAS.EQ.90) LOGVIS=.TRUE. 133 : * 134 : * 135 : * INITIALISATIONS 136 : * 137 : NYOG=0 138 : NYNU=0 139 : NYALFA=0 140 : NYSMAX=0 141 : NYN=0 142 : NYM=0 143 : NYKK=0 144 : NYALF1=0 145 : NYBET1=0 146 : NYR=0 147 : NYA=0 148 : NYRHO=0 149 : NSIGY=0 150 : NNKX=0 151 : NYKX=0 152 : IND=0 153 : * 154 : KERR1=0 155 : * 156 : TEMP0=0.D0 157 : * 158 : MFR =NUMMFR(MELE) 159 : IELE=NUMGEO(MELE) 160 : NHRM=NIFOUR 161 : MELEME=IPMAIL 162 : NBNN=NUM(/1) 163 : NBELEM=NUM(/2) 164 : ICARA=NCARR 165 : IF(MFR.EQ.7.OR.MFR.EQ.13)ICARA=NCARR+IDIM-1 166 : LW=200 167 : LW2=150 168 : NDEF=NSTRS 169 : NSTRSS=NSTRS 170 : IF(MFR.EQ.33) NSTRSS=NSTRS-1 171 : * 172 : LUNI1=.FALSE. 173 : LUNI2=.FALSE. 174 : * 175 : NCXMAT=NMATT 176 : IF(INPLAS.EQ.3)THEN 177 : NCXMAT=NMATT+7 178 : END IF 179 : LTRAC=260 180 : IF (INPLAS.EQ.51) LENDO=260 181 : * 182 : * 183 : * le cas LUNI1 = VRAI correspond au materiau ACIER_UNI 184 : * 185 : IF(INPLAS.EQ.40)THEN 186 : IF (MFR.EQ.1.AND.IFOUR.LE.0)LUNI1=.TRUE. 187 : IF ((MFR.EQ.3.OR.MFR.EQ.9).AND.IFOUR.EQ.2)LUNI2=.TRUE. 188 : ENDIF 189 : C 190 : MPTVAL=IVAMAT 191 : NBGMAT = 0 192 : NELMAT = 0 193 : DO 1001 IM=1,NMATT 194 : IF(IVAL(IM).NE.0)THEN 195 : MELVAL=IVAL(IM) 196 : 197 : * am 11/4/97 pourquoi ne pas tester la taille des ielche a 0 ? 198 : 199 : IF(CMATE.EQ.'SECTION')THEN 200 : NBGMAT=MAX(NBGMAT,IELCHE(/1)) 201 : NELMAT=MAX(NELMAT,IELCHE(/2)) 202 : ELSE 203 : NBGMAT=MAX(NBGMAT,VELCHE(/1)) 204 : NELMAT=MAX(NELMAT,VELCHE(/2)) 205 : ENDIF 206 : ENDIF 207 : 1001 CONTINUE 208 : c 209 : * 210 : * test sur istep 211 : * 212 : IF (ISTEP .GT. 2 .OR. ISTEP .LT. 0) THEN 213 : KERRE=54 214 : END IF 215 : * 216 : * test sur inplas pour recuperer eventuellement d'autres infos 217 : * 218 : * modeles de viscoplasticite on recupere le pas de temps dt en indice 'dt' 219 : * 220 : * on recupere le nombre max de sous pas en indice 'maxisouspas' 221 : * 222 : * et on met ind = 1 223 : * 224 : IF ( INPLAS .EQ. 17 .OR. INPLAS .EQ. 19 .OR. 225 : 1 INPLAS .EQ. 20 .OR. INPLAS .EQ. 61 .OR. 226 : 1 INPLAS .EQ. 21 .OR. INPLAS .EQ. 65 .OR. 227 : 2 INPLAS .EQ. 22 .OR. INPLAS .EQ. 23 .OR. 228 : 3 INPLAS .EQ. 24 .OR. INPLAS .EQ. 70 .OR. 229 : 6 INPLAS .EQ. 25 .OR. INPLAS .EQ. 29 .OR. 230 : 8 INPLAS .EQ. 43 .OR. INPLAS .EQ. 44 .OR. 231 : 8 INPLAS .EQ. 45 .OR. INPLAS .EQ. 53 .OR. 232 : 7 INPLAS .EQ. 63 .OR. INPLAS .EQ. 66 .OR. 233 : 9 INPLAS .EQ. 74 .OR. INPLAS .EQ. 76 .OR. 234 : 9 INPLAS .EQ. 84 .OR. INPLAS .EQ. 85 .OR. 235 : 9 INPLAS .EQ. 86 .OR. INPLAS .EQ. 90 .OR. 236 : 9 INPLAS .EQ. 77 .OR. INPLAS .EQ. 82 .OR. 237 : & INPLAS .EQ. 94 .OR. INPLAS .EQ. 95 .OR. 238 : & INPLAS .EQ. 100 .OR. INPLAS .EQ. 101 .OR. 239 : & INPLAS .EQ. 102 .OR. INPLAS .EQ. 141) THEN 240 : * 241 : IF(IPOTAB.EQ.0.OR.IVADEF.EQ.0) THEN 241 : CALL ERREUR(641) 242 : KERRE=999 243 : RETURN 244 : ENDIF 245 : IF (INPLAS.NE.43) THEN 246 : IF (ITHHER.EQ.1.OR.ITHHER.EQ.2) THEN 246 : CALL ACCTAB(IPOTAB,'MOT ',IVALIN,XVALIN, 247 : & 'TALPHA_REFERENCE',LOGIN,IOBIN, 248 : & 'FLOTTANT',IVALRE,TREFA,CHARRE,LOGRE,IOBRE) 249 : IF(IERR.NE.0)THEN 250 : KERRE=999 251 : RETURN 252 : ENDIF 253 : ENDIF 254 : ENDIF 255 : IND = 1 255 : CALL ACCTAB(IPOTAB,'MOT ',IVALIN,XVALIN,'DT',LOGIN,IOBIN, 256 : & 'FLOTTANT',IVALRE,DT,CHARRE,LOGRE,IOBRE) 257 : IF(IERR.NE.0)THEN 258 : KERRE=999 259 : RETURN 260 : END IF 260 : CALL ACCTAB(IPOTAB,'MOT ',IVALIN,XVALIN,'MAXISOUSPAS', 261 : & LOGIN,IOBIN,'ENTIER ',MSOUPA,XVALRE,CHARRE,LOGRE,IOBRE) 262 : IF(IERR.NE.0) THEN 263 : KERRE=999 264 : RETURN 265 : END IF 266 : * 266 : CALL ACCTAB(IPOTAB,'MOT ',IVALIN,XVALIN,'TEMPS0',LOGIN, 267 : & IOBIN,'FLOTTANT',IVALRE,TEMP0,CHARRE,LOGRE,IOBRE) 268 : IF(IERR.NE.0)THEN 269 : KERRE=999 270 : RETURN 271 : END IF 272 : ENDIF 273 : * 274 : * ---> PLastique endommageable de Lemaitre 275 : * 276 : IF ( INPLAS .EQ. 26 ) THEN 277 : * 278 : IF(IPOTAB.EQ.0.OR.IVADEF.EQ.0) THEN 278 : CALL ERREUR(641) 279 : KERRE=999 280 : RETURN 281 : ENDIF 282 : IF (ITHHER.EQ.1.OR.ITHHER.EQ.2) THEN 282 : CALL ACCTAB(IPOTAB,'MOT ',IVALIN,XVALIN, 283 : & 'TALPHA_REFERENCE',LOGIN,IOBIN, 284 : & 'FLOTTANT',IVALRE,TREFA,CHARRE,LOGRE,IOBRE) 285 : IF(IERR.NE.0)THEN 286 : KERRE=999 287 : RETURN 288 : ENDIF 289 : ENDIF 290 : ENDIF 291 : 292 : IF(MFR.EQ.7.OR.MFR.EQ.13.OR.LUNI1)THEN 293 : NBBB=NBNN 294 : ENDIF 295 : * 296 : DTOPTI = 1.D6*DT 297 : TSOM = 0.D0 298 : NSOM = 0 299 : NINV = 0 300 : NINCMA = 0 301 : TCAR = 0.D0 302 : NCOMP = 0 303 : DTT=DT 304 : * 305 : c 306 : c mise a 0 des variables du common necou si besoin 307 : 308 : c les bonnes valeurs sont attribuees selon les modeles 309 : c initialisations selon les cas 310 : c 311 : IF(INPLAS.NE.2)THEN 312 : * 313 : IF(NPINT.NE.0.AND.MELE.EQ.28) THEN 314 : IFOURB=-2 315 : MFR1=1 316 : IF(INPLAS.EQ.66) MFR1=MFR 317 : ELSE 318 : MFR1=MFR 319 : IFOURB=IFOUR 320 : ENDIF 321 : * 322 : * cas des coques minces 323 : * en materiau unidirectionnel plastique 324 : * on met IFOURB a -2 325 : * 326 : IF(MATE.EQ.4.AND.INPLAS.NE.0.AND.MFR.EQ.3) THEN 327 : IFOURB=-2 328 : ENDIF 329 : * 330 : NCOURB=0 331 : IPLAST=0 332 : IMAPLA=1 333 : IT=1 334 : ISOTRO=0 335 : ITYP=0 336 : * 337 : * correspondance ( mfr,ifour) et ityp faite dans ecoinc 338 : * 339 : IFLUAG=0 340 : ICINE=0 341 : ITHER=0 342 : IFLUPL=0 343 : ICYCL=0 344 : IBI=0 345 : JFLUAG=0 346 : JELEM =0 347 : LFLUAG=0 348 : IRELAX=0 349 : JNTRIN=0 350 : MFLUAG=0 351 : LEGAUS=0 352 : JGRDEF=0 353 : ENDIF 354 : * 355 : IF(MFR.EQ.15) NUCAR=NUCAR*2 356 : NUMAT1=NUMAT 357 : * 358 : IF(INPLAS.EQ.26)THEN 359 : NNVARI=2 360 : NUMAT=NUMAT+4 361 : ENDIF 362 : IF (INPLAS.EQ.26.OR.INPLAS.EQ.29) THEN 363 : INAT=INPLAS 364 : ELSE 365 : INAT=0 366 : ENDIF 367 : * 368 : RETURN 369 : END 370 : 371 : 372 : 373 : 374 : 375 : 376 : 377 : 378 : 379 : 380 : 381 : 382 : 383 : 384 : 385 : 386 : 387 : 388 : 389 : 390 : 391 : 392 : 393 : 394 : 395 : 396 : 397 :
© Cast3M 2003 - All rights reserved.
Disclaimer