Download comdef.eso

Back to the list

   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