Download defini.eso

Back to the list

   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