Download defval.eso

Back to the list

   1 : C DEFVAL    SOURCE    PV        09/03/12    21:19:12     6325           
   2 :       SUBROUTINE DEFVAL(NUMAT1,NBPTEL,NDEF,  
   3 :      .     IMAT,IVACAR,ICAR,IVASTR,IVARI,IVADEF,IVADET,
   4 :      .     IVADS,MFR,CMATE,INPLAS,IB,IGAU,IND,
   5 :      .     WTRAV,WRK1,WRK5,SECT,EPAIST)  
   6 : *  
   7 : *********************************************************
   8 : *       ENTREES  
   9 : *********************************************************
  10 : *  
  11 : *  NUMAT1   : dimension de VALMAT 
  12 : *  NUCAR    : dimension de VALCAR  
  13 : *  NBPTEL   : nombre de points de Gauss par éléments  
  14 : *  NSTRS    : nombre de composantes du tenseur des contraintes 
  15 : *  NVARI    : nombre de variables internes 
  16 : *  NDEF     : nombre de composantes du tenseur des deformations   
  17 : *  IMAT     : pointeur sur un segment mptval de materiau (utilise par calsig) 
  18 : *  IVACAR   : pointeur sur un segment mptval de cacarteristiques geometriques 
  19 : *  ICAR     : pointeur sur un segment mptval de caracteristiques
  20 : *             geometriques (utilise par calsig) 
  21 : *  IVASTR   : pointeur sur un segment mptval de contraintes 
  22 : *  IVARI    : pointeur sur un segment mptval de variables internes 
  23 : *  IVADEF   : pointeur sur un segment mptval de deformations
  24 : *  IVADET   : pointeur sur un segment mptval de deformations
  25 : *  IVADS    : pointeur sur un segment mptval de contraintes  (increments) 
  26 : *  MFR      : formulation de l'élément 
  27 : *  CMATE    : nom du matériau  
  28 : *  INPLAS   : numéro de matériau inélastique 
  29 : *  IB       : numéro de l'élément  
  30 : *  IGAUS    : numéro du point de Gauss  
  31 : *  IND      : indice de prise en compte des déformations plastiques initiales 
  32 : *             IND=1 : oui 
  33 : *             IND=0 : non  
  34 : *   
  35 : **********************************************************************
  36 : *     SORTIES 
  37 : **********************************************************************  
  38 : *  
  39 : *  VALMAT(NUMAT1)  : champ de caratéristiques du matériau 
  40 : *  VALCAR(NUCAR)   : (WTRAV)  
  41 : *  SIG0(NSTRS)     : contraintes au début du pas (WRK1)  
  42 : *  EPST0(NSTRS)    : deformations au début du pas (WRK5)
  43 : *  VAR0(NVARI)     : variables internes au début du pas (WRK1)   
  44 : *  EPIN0(NVARI)    : déformations inélastiques au début du pas 
  45 : *                    (éventuellement) (WRK5)  
  46 : *  DEPST(NSTRS)    : incrément de déformation totale (WRK1)  
  47 : *  SECT            : section de l'élément IB (éventuel)  
  48 : *  EPAIST          : épaisseur et excentrement ( éventuel) 
  49 : *
  50 : ***********************************************************************  
  51 : *  
  52 :       IMPLICIT INTEGER(I-N)
  53 :       IMPLICIT REAL*8(A-H,O-Z)
  54 : *
  55 : -INC CCOPTIO
  56 : -INC SMCHAML
  57 : *  
  58 :       SEGMENT MPTVAL
  59 :         INTEGER IPOS(NS)    ,NSOF(NS)
  60 :         INTEGER      IVAL(NCOSOU)
  61 :         CHARACTER*16 TYVAL(NCOSOU)
  62 :       ENDSEGMENT  
  63 : *  
  64 :       CHARACTER*8 CMATE 
  65 : *  
  66 :       SEGMENT WRK1
  67 :         REAL*8 DDHOOK(LHOOK,LHOOK),SIG0(NSTRS),DEPST(NSTRS)
  68 :         REAL*8 SIGF(NSTRS),VAR0(NVARI),VARF(NVARI)
  69 :         REAL*8 DEFP(NSTRS),XCAR(ICARA)
  70 :       ENDSEGMENT
  71 : * 
  72 :       SEGMENT WRK5
  73 :         REAL*8 EPIN0(NSTRS),EPINF(NSTRS),EPST0(NSTRS)
  74 :       ENDSEGMENT
  75 : * 
  76 :       SEGMENT WTRAV
  77 :         REAL*8 DDAUX(LHOOK,LHOOK),VALMAT(NUMAT)
  78 :         REAL*8 VALCAR(NUCAR),DSIGT(NSTRS)
  79 :         REAL*8 TXR(IDIM,IDIM),DDHOMU(LHOOK,LHOOK)
  80 :         REAL*8 XLOC(IDIM,IDIM),XGLOB(IDIM,IDIM)
  81 :         REAL*8 D1HOOK(LHOOK,LHOOK),ROTHOO(LHOOK,LHOOK)
  82 :       ENDSEGMENT
  83 : * 
  84 : *       recuperation de valmat et de valcar
  85 : *
  86 :         NUCAR=VALCAR(/1) 
  87 :         NSTRS=SIG0(/1) 
  88 :         NVARI=VAR0(/1)  
  88 :         CALL ZERO(VALMAT,NUMAT1,1)
  88 :         CALL ZERO(VALCAR,NUCAR,1)
  89 : *
  90 :         MPTVAL=IMAT
  91 :         DO 1005 IM=1,NUMAT1
  92 :           IF (IVAL(IM).NE.0) THEN
  93 :             MELVAL=IVAL(IM)
  94 :             IF(VELCHE(/1)+VELCHE(/2).NE.0) THEN
  95 :               IBMN=MIN(IB  ,VELCHE(/2))
  96 :               IGMN=MIN(IGAU,VELCHE(/1))
  97 :               VALMAT(IM)=VELCHE(IGMN,IBMN)
  98 :             ELSE IF(IELCHE(/1)+IELCHE(/2).NE.0) THEN
  99 :               IBMN=MIN(IB  ,IELCHE(/2))
 100 :               IGMN=MIN(IGAU,IELCHE(/1))
 101 :               VALMAT(IM)=DBLE(IELCHE(IGMN,IBMN))
 102 :             ELSE
 103 :               VALMAT(IM)=0.D0
 104 :             ENDIF
 105 :           ELSE
 106 :             VALMAT(IM)=0.D0
 107 :           ENDIF
 108 :  1005   CONTINUE
 109 : ** valmat est dimensionnee a 4 dans le cas test endoaxi1
 110 : ** et n'est jamais utilise au dessus
 111 : *      IF(INPLAS.EQ.26) THEN
 112 : *        VALMAT(7)=VALMAT(3)
 113 : *        DO 1006 ICOMP=3,6
 114 : *              VALMAT(ICOMP)=0.D0
 115 : *1006    CONTINUE
 116 : *      ENDIF
 117 : *  
 118 :         IF ((MFR.EQ.7.OR.MFR.EQ.13.OR.MFR.EQ.15.OR.MFR.EQ.17).AND.
 119 :      1                  CMATE.NE.'SECTION') THEN
 120 : *
 121 :           IF (MFR.EQ.15) THEN
 122 :            NUCAR=NUCAR/2
 123 :            IE=1
 124 :            DO 1007 IC=1,3,2
 125 :              MPTVAL=IVACAR
 126 :              DO 1007 ICOMP=1,NUCAR
 127 :                MELVAL=IVAL(ICOMP)
 128 :                IAUX=MELVAL
 129 :                IF (IAUX.NE.0) THEN
 130 :                  IGMN=MIN(IC,VELCHE(/1))
 131 :                  IBMN=MIN(IB,VELCHE(/2))
 132 :                  VALCAR(IE)=VELCHE(IGMN,IBMN)
 133 :                ELSE
 134 :                  VALCAR(IE)=0.D0
 135 :               ENDIF
 136 :               IE=IE+1
 137 :  1007 CONTINUE 
 138 : *   
 139 :           ELSE
 140 :            DO 1010 ICOMP=1,NUCAR
 141 :              MPTVAL=ICAR
 142 :              MELVAL=IVAL(ICOMP)
 143 :              IAUX=MELVAL
 144 :              VALCAR(ICOMP)=0.D0
 145 :              DO 1008 IAUX1=1,NBPTEL
 146 :                IF (IAUX.NE.0) THEN
 147 :                  IBMN=MIN(IB  ,VELCHE(/2))
 148 :                  IGMN=MIN(IAUX1,VELCHE(/1))
 149 :                  VALCAR(ICOMP)=VALCAR(ICOMP)+VELCHE(IBMN,IGMN)
 150 :                ENDIF
 151 :                IF(IAUX1.EQ.NBPTEL) VALCAR(ICOMP)=VALCAR(ICOMP)/NBPTEL
 152 :  1008        CONTINUE
 153 :  1010      CONTINUE
 154 :           ENDIF
 155 :         ENDIF 
 156 : *
 157 : *       on recupere les contraintes initiales
 158 : *
 159 :             MPTVAL=IVASTR
 160 :             DO 1101 IC=1,NSTRS
 161 :                MELVAL=IVAL(IC)
 162 :                IBMN=MIN(IB,VELCHE(/2))
 163 :                IGMN=MIN(IGAU,VELCHE(/1))
 164 :                SIG0(IC)=VELCHE(IGMN,IBMN)
 165 : 1101         continue
 166 : *  
 167 : *     on recupere les variables internes
 168 : *
 169 :             MPTVAL=IVARI
 170 :               DO IC=1,NVARI
 171 :                 MELVAL=IVAL(IC)
 172 :                 IF(IELCHE(/1)+IELCHE(/2).NE.0) THEN
 173 :                   IBMN=MIN(IB,IELCHE(/2))
 174 :                   IGMN=MIN(IGAU,IELCHE(/1))
 175 :                   VAR0(IC)=DBLE(IELCHE(IGMN,IBMN))
 176 :                 ELSE IF(VELCHE(/1)+VELCHE(/2).NE.0) THEN
 177 :                   IBMN=MIN(IB,VELCHE(/2))
 178 :                   IGMN=MIN(IGAU,VELCHE(/1))
 179 :                   VAR0(IC)=VELCHE(IGMN,IBMN)
 180 :                 ENDIF
 181 :               END DO
 182 : *    
 183 : *     on recupere les deformations inelastiques initiales si besoin
 184 : *
 185 :             IF(IND.EQ.1.OR.INPLAS.EQ.31.OR.INPLAS.EQ.30
 186 :      .                 .OR.INPLAS.EQ.34.OR.INPLAS.EQ.37
 187 :      .                 .OR.INPLAS.EQ.47.OR.INPLAS.EQ.66 
 188 :      .                 .OR.INPLAS.EQ.75.OR.INPLAS.EQ.118
 189 :      .                 .OR.INPLAS.EQ.141) THEN
 190 :                MPTVAL=IVADEF
 191 :                DO 1103 IC=1,NDEF
 192 :                   MELVAL=IVAL(IC)
 193 :                   IBMN=MIN(IB,VELCHE(/2))
 194 :                   IGMN=MIN(IGAU,VELCHE(/1))
 195 :                   EPIN0(IC)=VELCHE(IGMN,IBMN)
 196 : 1103            continue
 197 :             ENDIF
 198 : *    
 199 : *     on recupere les deformations totales si besoin
 200 : *
 201 :             IF(MFR.EQ.33) THEN
 202 :                MPTVAL=IVADET
 203 :                DO 1104 IC=1,NDEF
 204 :                   MELVAL=IVAL(IC)
 205 :                   IBMN=MIN(IB,VELCHE(/2))
 206 :                   IGMN=MIN(IGAU,VELCHE(/1))
 207 :                   EPST0(IC)=VELCHE(IGMN,IBMN)
 208 : 1104            continue
 209 :             ENDIF
 210 : *  
 211 : *     on recupere les increments de deformations  totales
 212 : *
 213 :             MPTVAL=IVADS
 214 :             DO  1105 IC=1,NSTRS
 215 :                MELVAL=IVAL(IC)
 216 :                IBMN=MIN(IB,VELCHE(/2))
 217 :                IGMN=MIN(IGAU,VELCHE(/1))
 218 :                DEPST(IC)=VELCHE(IGMN,IBMN)
 219 : 1105         continue
 220 : *   
 221 :        IF(MFR.EQ.27.OR.MFR.EQ.49) THEN
 222 : *
 223 : *  on cherche la section de l'element ib
 224 : *
 225 :           MPTVAL=ICAR
 226 :           MELVAL=IVAL(1)
 227 :           IAUX=MELVAL
 228 :           IF (IAUX.NE.0) THEN
 229 :            IBMN=MIN(IB  ,VELCHE(/2))
 230 :            IGMN=MIN(IGAU,VELCHE(/1))
 231 :            SECT=VELCHE(IGMN,IBMN)
 232 :           ELSE
 233 :            SECT=0.D0
 234 :           ENDIF
 235 :        ENDIF
 236 : *  
 237 : *  prise en compte de l'epaisseur et de l'excentrement
 238 : *  dans le cas des coques minces avec ou sans cisaillement
 239 : *  transverse
 240 : *
 241 :         IF ((CMATE.EQ.'ISOTROPE'.OR.CMATE.EQ.'ORTHOTRO'.
 242 :      1         OR.CMATE.EQ.'UNIDIREC').AND.
 243 :      2                       (MFR.EQ.3.OR.MFR.EQ.9)) THEN
 244 :          MPTVAL=ICAR
 245 :          MELVAL=IVAL(1)
 246 :          IAUX=MELVAL
 247 :          IF (IAUX.NE.0) THEN
 248 :            IBMN=MIN(IB  ,VELCHE(/2))
 249 :            IGMN=MIN(IGAU,VELCHE(/1))
 250 :            EPAIST=VELCHE(IGMN,IBMN)
 251 :          ELSE
 252 :            EPAIST=0.D0
 253 :          ENDIF
 254 :         ENDIF
 255 : * 
 256 :       RETURN  
 257 :       END   
 258 :  
 259 :  
 260 :  
 261 :  
 262 :  
 263 :  
 264 :  
 265 :  
 266 :  
 267 :  
 268 :  
 269 :  

© Cast3M 2003 - All rights reserved.
Disclaimer