Download wcree0.eso

Back to the list

   1 : C WCREE0    SOURCE    FANDEUR   14/01/22    21:15:19     7891           
   2 : 
   3 :       SUBROUTINE WCREE0 ( iqmod, wrk52, wcreep )
   4 : 
   5 :       IMPLICIT INTEGER(I-N)
   6 :       IMPLICIT REAL*8(A-H,O-Z)
   7 : C-----------------------------------------------------------------------
   8 : 
   9 : C
  10 : C     DESCRIPTION FONCTIONNELLE :
  11 : C     -------------------------
  12 : C
  13 : C     Preparation de donnees pour l'integration d'une loi VISCO_EXTERNE
  14 : C
  15 : C     WCREE0 prepare les donnees independantes de l'element et du point
  16 : C     d'integration ; de ce fait, WCREE0 est appelee par COML6 avant le
  17 : C     demarrage des boucles imbriquees sur les elements de la sous-zone
  18 : C     et sur les points de Gauss de l'element.
  19 : C
  20 : C     INTERFACE :
  21 : C     ---------
  22 : C
  23 : C     IN     : iqmod  : pointeur actif sur le modele elementaire
  24 : C     IN     : wrk52  : pointeur actif sur le segment de travail WRK52
  25 : C                       de l'objet DECHE
  26 : C     IN     : wcreep : pointeur actif sur le segment de travail
  27 : C                       WCREEP contenant les donnees a preparer
  28 : C
  29 : C
  30 : C     Les operations effectuees par WCREE0 consistent a initialiser
  31 : C     certains elements du segment de travail WCREEP.
  32 : C     Sont concernees les donnees suivantes :
  33 : C
  34 : C              Entrees/sorties constantes de la routine CREEP :
  35 : C              ----------------------------------------------
  36 : C
  37 : C              SERD   : REAL*8, puissance volumique de deformation
  38 : C                       inelastique (produit contracte du tenseur des
  39 : C                       contraintes et du tenseur des vitesses de
  40 : C                       deformation inelastique)
  41 : C                       Entree/sortie facultative de la routine CREEP,
  42 : C                       non exploitee par CAST3M pour l'instant
  43 : C                       Initialisation arbitraire
  44 : C
  45 : C              CMNAMC : CHARACTER*16, identifiant de la loi de
  46 : C                       comportement
  47 : C                       Entree de la routine CREEP
  48 : C
  49 : C              LEXIMP : INTEGER, indicateur d'integration par un schema
  50 : C                       Entree de la routine CREEP, non active dans le
  51 : C                       cas d'une adherence a CAST3M
  52 : C                       Initialisation arbitraire
  53 : C
  54 : C              NSTTVC : INTEGER, nombre de variables internes
  55 : C                       supplementaires (en plus des 4 pre-definies)
  56 : C                       Entree de la routine CREEP
  57 : C
  58 : C              LAYERC : INTEGER, numero de couche pour des coques
  59 : C                       composites ou des solides multi-couches
  60 : C              KSPTC  : INTEGER, numero de section dans la couche
  61 : C                       courante
  62 : C                       Entrees de la routine CREEP, non actives dans le
  63 : C                       cas d'une adherence a CAST3M
  64 : C                       Initialisation arbitraire
  65 : C
  66 : C              Entrees/sorties de la routine CREEP pouvant varier :
  67 : C              --------------------------------------------------
  68 : C
  69 : C              TMP12  : REAL*8, temperature a t+tau1/2
  70 : C              TMP    : REAL*8, temperature a t+tau
  71 : C              TMP32  : REAL*8, temperature a t+tau3/2
  72 : C              DTMP12 : REAL*8, variation de temperature sur tau1/2
  73 : C              DTMP   : REAL*8, variation de temperature sur tau
  74 : C              PRD12  : REAL*8(*), parametres externes a t+tau1/2
  75 : C              PRD    : REAL*8(*), parametres externes a t+tau
  76 : C              PRD32  : REAL*8(*), parametres externes a t+tau3/2
  77 : C              DPRD12 : REAL*8(*), variations des parametres externes
  78 : C                       sur tau1/2
  79 : C              DPRD   : REAL*8(*), variations des parametres externes
  80 : C                       sur tau
  81 : C                       Entrees de la routine CREEP
  82 : C                       Ces entrees ne sont initialisees par WCREE0 que
  83 : C                       dans le cas ou elles ne sont pas actives, i.e.
  84 : C                       quand aucun champ de temperature ni aucun champ
  85 : C                       de parametre externe n'est fourni en entree a
  86 : C                       l'operateur COMP (cas d'un modele independant
  87 : C                       de la temperature et de tout autre parametre).
  88 : C
  89 : C              KSTEPC : INTEGER
  90 : C                       Entree de la routine CREEP n'ayant pas de sens
  91 : C                       dans le cas d'une adherence a CAST3M
  92 : C                       Initialisation arbitraire
  93 : C                       On autorise la programmation de l'utilisateur a
  94 : C                       se servir de KSTEPC comme code retour de CREEP
  95 : C                       (voir module CREEP exemple integre au code)
  96 : C
  97 : C              Variables de travail :
  98 : C              --------------------
  99 : C
 100 : C              LTMP   : LOGICAL, indicateur de fourniture de
 101 : C                       la temperature
 102 : C                       LTMP=.TRUE.  : les variables TMP* et DTMP* sont
 103 : C                       mises a jour au cours du processus d'integration
 104 : C                       LTMP=.FALSE. : les variables TMP* et DTMP* sont
 105 : C                       initialisees une fois pour toutes par WCREE0
 106 : C
 107 : C              LPRD   : LOGICAL, indicateur d'existence de parametres
 108 : C                       externes du modele
 109 : C                       LPRD=.TRUE.  : les variables PRD* et DPRD* sont
 110 : C                       mises a jour au cours du processus d'integration
 111 : C                       LPRD=.FALSE. : les variables PRD* et DPRD* sont
 112 : C                       initialisees une fois pour toutes par WCREE0
 113 : C
 114 : C              LSTV   : LOGICAL, indicateur d'existence de variables
 115 : C                       internes supplementaires (i.e. en plus des 4
 116 : C                       pre-definies)
 117 : C                       LSTV=.TRUE.  : les vecteurs de travail STV* du
 118 : C                       segment WCREEP sont mis a jour au cours du
 119 : C                       processus d'integration
 120 : C                       LSTV=.FALSE. : les vecteurs de travail STV* du
 121 : C                       segment WCREEP sont initialises une fois pour
 122 : C                       toutes par WCREE0
 123 : C
 124 : C              IVIEX  : INTEGER, indicateur de materiau 'VISCO_EXTERNE'
 125 : C                       1 : 'GENERAL'
 126 : C                       2 : 'DRUCKER_PRAGER'
 127 : C                       3 : 'COHESION'
 128 : C                       4 : 'CONSOLIDATION'
 129 : C                       5 : 'UTILISATEUR'
 130 : C                       On a besoin d'un second indicateur pour les lois
 131 : C                       'VISCO_EXTERNE' car INPLAS=-100-ILOI ou ILOI est
 132 : C                       le numero attribue par l'utilisateur
 133 : C                       INPLAS permet de ditinguer les lois entre elles
 134 : C                       IVIEX permet de "typer" une loi
 135 : C                       
 136 : C              NPAREC : INTEGER, nombre de parametres externes de la loi
 137 : C                       de comportement
 138 : C                       Stockage dans une variable de travail afin de ne
 139 : C                       pas "mesurer" un vecteur a chaque mise a jour au
 140 : C                       cours du processus d'integration
 141 : C                       N'est utile que dans le cas ou le modele depend
 142 : C                       effectivement de parametres externes
 143 : C
 144 : C              dTMPdt : REAL*8, derivee de la temperature par rapport au
 145 : C                       temps, constante sur le pas de temps
 146 : C              dPRDdt : REAL*8(*), derivees des parametres externes par
 147 : C                       rapport au temps, constantes sur le pas de temps
 148 : C                       Ces variables ne servent que dans les cas ou
 149 : C                       LTMP=.TRUE. et LPRD=.TRUE. respectivement
 150 : C                       La temperature et les parametres extenes sont
 151 : C                       supposes varier lineairement sur le pas de temps
 152 : C
 153 : C-----------------------------------------------------------------------
 154 : -INC SMMODEL
 155 : -INC DECHE
 156 : C
 157 :       SEGMENT WCREEP
 158 : C        Entrees/sorties constantes de la routine CREEP
 159 :          REAL*8        SERD
 160 :          CHARACTER*16  CMNAMC
 161 :          INTEGER       LEXIMP, NSTTVC, LAYERC, KSPTC
 162 : C        Entrees/sorties de la routine CREEP pouvant varier
 163 :          REAL*8        STV(NSTV),    STV1(NSTV),  STVP1(NSTV),
 164 :      &                 STVP2(NSTV),  STV12(NSTV), STVP3(NSTV),
 165 :      &                 STVP4(NSTV),  STV13(NSTV), STVF(NSTV),
 166 :      &                 TMP12,        TMP,         TMP32,
 167 :      &                 DTMP12,       DTMP,
 168 :      &                 PRD12(NPRD),  PRD(NPRD),   PRD32(NPRD),
 169 :      &                 DPRD12(NPRD), DPRD(NPRD)
 170 :          INTEGER       KSTEPC
 171 : C        Autres indicateurs et variables de travail
 172 :          LOGICAL       LTMP, LPRD, LSTV
 173 :          INTEGER       IVIEX, NPAREC
 174 :          REAL*8        dTMPdt, dPRDdt(NPRD)
 175 :       ENDSEGMENT
 176 : C
 177 : C     Arguments de l'interface
 178 : C
 179 : C     Pointeurs        iqmod, wrk52, wcreep
 180 : C
 181 : C     Variables locales
 182 : C
 183 :       CHARACTER*16     MOMODL(200)
 184 : C
 185 : C---------------------- Debut du code executable -----------------------
 186 : C
 187 :       IMODEL = iqmod
 188 : C
 189 : C 1 - Entrees/sorties non actives/non exploitees de la routine CREEP
 190 : C     Initialisations arbitraires
 191 : C
 192 :       SERD = 0.0D0
 193 : C
 194 :       LEXIMP = 0
 195 :       LAYERC = 0
 196 :       KSPTC  = 0
 197 : C
 198 : C 2 - Initialisation de KSTEPC qui pourra servir de code retour
 199 : C
 200 :       KSTEPC = 1
 201 : C
 202 : C 3 - Numero de loi externe encode dans une chaine de 16 caracteres
 203 : C     Typage de la loi 'VISCO_EXTERNE'
 204 : C
 205 :       NMAMOD = MATMOD(/2)
 206 :       CMNAMC = MATMOD(NMAMOD)
 207 : C
 208 :       nparmo  = 0
 209 :       NOBMOD = TYMODE(/2)
 209 :       CALL PLACE(TYMODE,NOBMOD,nparmo,'IVIEX  ')
 209 :       IF (nparmo.EQ.0) CALL ERREUR(5)
 210 :       IVIEX = IVAMOD(nparmo)
 211 : C
 212 : C 4 - Nombre de variables internes supplementaires
 213 : C
 214 :       NSTTVC = VAR0(/1)-4
 215 :       LSTV = (NSTTVC.GT.0)
 216 : C
 217 : C 5 - Existence d'un chargement en temperature
 218 : C     Existence de parametres externes autres que la temperature
 219 : C
 220 :       NTURE0=TURE0(/1)
 221 :       IF ( NTURE0.GT.0 ) THEN
 222 :          LTMP = .TRUE.
 223 :       ELSE
 224 :          LTMP = .FALSE.
 225 :          TMP12 = 0.0D0
 226 :          TMP   = 0.0D0
 227 :          TMP32 = 0.0D0
 228 :          DTMP12 = 0.0D0
 229 :          DTMP   = 0.0D0
 230 :          dTMPdt = 0.0D0
 231 :       ENDIF
 232 : C
 233 :       NPAREC=PAREX0(/1)
 234 :       nomid=LNOMID(14)
 235 :       IF (nomid.NE.0) THEN
 236 :          SEGACT,nomid
 237 :          nparmo=lesobl(/2)
 238 :          IF (nparmo.EQ.1) THEN
 239 :             IF (lesobl(1).EQ.'T   ') THEN
 240 :                nparmo = 0
 241 :             ENDIF
 242 :          ENDIF
 243 :          SEGDES,nomid
 244 :       ELSE
 245 :          nparmo = 0
 246 :       ENDIF
 247 :       IF (nparmo.GT.0) THEN
 248 :          LPRD=.TRUE.
 249 :       ELSE
 250 :          LPRD=.FALSE.
 251 :          PRD12(1) = 0.0D0
 252 :          PRD(1)   = 0.0D0
 253 :          PRD32(1) = 0.0D0
 254 :          DPRD12(1) = 0.0D0
 255 :          DPRD(1)   = 0.0D0
 256 :          dPRDdt(1) = 0.0D0
 257 :       ENDIF
 258 : C
 259 :       RETURN
 260 :       END
 261 : 
 262 :  
 263 :  

© Cast3M 2003 - All rights reserved.
Disclaimer