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