1 : C DAMATC SOURCE FANDEUR 11/07/19 21:15:54 7036 2 : SUBROUTINE DAMATC(IFOUR,XMAT,DDHOOK,LHOOK,SIG0,VAR0, 3 : > DEPST,DSIGT,EPST0,EPIN0, SIGF,VARF,DEFP) 4 : *--------------------------------------------------------------------* 5 : IMPLICIT INTEGER(I-N) 6 : IMPLICIT REAL*8(A-H,O-Z) 7 : INTEGER IFOUR, LHOOK, NCRIT 8 : REAL*8 AVALC, AVALT, BVALC, BVALT, BPCOM, DVOLU, 9 : . FTULT, FC01D, FCU1D, GVALT, HLENG, 10 : . POISS, RHO, REDUC, RAT45, STRAU, STRAP, STREP, STRA1, 11 : . STRE1, STRA2, STRE2, STRU0, STRIN, SIG0(LHOOK), 12 : . TANGB, THR0T, YOUNG, VAR0(*), XMAT(*) 13 : C 14 : INTEGER IDIM, ISTEG, ITERA, IRTD, KCAS, NDIME, NDIM1, NTEMP 15 : REAL*8 ATINV, CONS0, CONS1, CONS2, CONS3, CLENG, 16 : . DAMAT, DAMAC, DEFP(LHOOK), DEPST(LHOOK), DSIGT(LHOOK), 17 : . DYOUN, DDHOOK(LHOOK,LHOOK), EPST0(LHOOK), EPIN0(LHOOK), 18 : . EQUIC, EXTCT, EXTTS, EQUIT, EBOU1, GTESP, HBOUN, 19 : . PROVI, ROOT2, ROO13, ROO23, SIGF(LHOOK), 20 : . THR0C, THRUC, THRET, THREC, VARF(*), ZEROM 21 : C 22 : CHARACTER*8 STYPE 23 : C 24 : PARAMETER (ROOT2 = 1.414213562373090 D0, 25 : & ROO13 = 0.577350269189626 D0, 26 : & ROO23 = 0.816496580927726 D0, 27 : & ZEROM = 1.0 D-10) 28 : C 29 : *--------------------------------------------------------------------* 30 : * INPUT: XMAT=material parameter 31 : * XMAT( 1)='YOUN' ! Young Modulus 32 : * XMAT( 2)='NU ' ! Poisson coefficient 33 : * XMAT( 3)='RHO ' ! Density 34 : * XMAT( 4)='ALPH' ! Thermal coefficient 35 : * XMAT( 5)='HLEN' ! Effective length 36 : * XMAT( 6)='GVAL' ! Fracture energy 37 : * XMAT( 7)='FTUL' ! Tensile stress 38 : * XMAT( 8)='REDC' ! Drop Factor for Peak Tensile Stress 39 : * XMAT( 9)='FC01' ! Elastic Limit Compressive Stress 40 : * XMAT(10)='RT45' ! Equi-biaxial Compressive Ratio 41 : * XMAT(11)='FCU1' ! Compressive Peak Stress 42 : * XMAT(12)='STRU' ! Ultimate Limit Strain 43 : * XMAT(13)='EXTP' ! Reference Strain for Plastic Parameter 44 : * XMAT(14)='STRP' ! Reference Stress for Plastic Parameter 45 : * XMAT(15)='EXT1' ! Fitting Point 1 (Strain) 46 : * XMAT(16)='STR1' ! Fitting Point 1 (Stress) 47 : * XMAT(17)='EXT2' ! Fitting Point 2 (Strain) 48 : * XMAT(18)='STR2' ! Fitting Point 2 (Stress) 49 : * XMAT(19)='NCRI' ! Tensile Softening Criteria (1=Expon./2=Lin.) 50 : * 51 : * XMAT(20)='TANB' ! Drucker-Prager Tangent 52 : * XMAT(21)='BPLC' ! Plastic Compressive Parameter 53 : * XMAT(22)='TR0T' ! Initial Tension Damage Threshold 54 : * XMAT(23)='TR0C' ! Initial Compression Damage Threshold 55 : * XMAT(24)='TRUC' ! Ultimate Compression Damage Threshold 56 : * XMAT(25)='AVAT' ! "A" Parameter for Tension 57 : * XMAT(26)='BVAT' ! "B" Parameter for Tension 58 : * XMAT(27)='AVAC' ! "A" Parameter for Compression 59 : * XMAT(28)='BVAC' ! "B" Parameter for Compression 60 : * XMAT(29)='DVOL' ! Volume of a finite element 61 : * 62 : * DDHOOK=Hooke matrix 63 : * 64 : * VAR0: internal variable 65 : * VAR0(1)='THRT' ! Tension theshold 66 : * VAR0(2)='EQUT' ! Tension equivalent strain 67 : * VAR0(3)='DAMT' ! Tension damage 68 : * VAR0(4)='THRC' ! Compre. theshold 69 : * VAR0(5)='EQUC' ! Compre. equivalent strain 70 : * VAR0(6)='DAMC' ! Compre. damage 71 : *--------------------------------------------------------------------* 72 : C 73 : IDIM=2 74 : IF(IFOUR.EQ.2)IDIM=3 75 : NDIME = IDIM 76 : NDIM1 = NDIME + 1 77 : C 78 : C COMPULSORY CARACTERISTICS 79 : C 80 : YOUNG = XMAT(1) 81 : POISS = XMAT(2) 82 : RHO = XMAT(3) 83 : C ALPHA = XMAT(4) 84 : C 85 : HLENG = XMAT(5) 86 : GVALT = XMAT(6) 87 : FTULT = XMAT(7) 88 : REDUC = XMAT(8) 89 : FC01D = XMAT(9) 90 : RAT45 = XMAT(10) 91 : FCU1D = XMAT(11) 92 : STRAU = XMAT(12) 93 : STRAP = XMAT(13) 94 : STREP = XMAT(14) 95 : STRA1 = XMAT(15) 96 : STRE1 = XMAT(16) 97 : STRA2 = XMAT(17) 98 : STRE2 = XMAT(18) 99 : NCRIT = nint(XMAT(19)) 100 : C 101 : DVOLU = XMAT(29) 102 : C 103 : C FACULTATIVE CARACTERISTICS 104 : C 105 : DYOUN = SQRT (YOUNG) 106 : THR0T = DABS (FTULT/DYOUN) 107 : C 108 : C=====---------------------------------------------------------------- 109 : C EVALUATING PRELIMINAR QUANTITIES FOR PLASTIC-VISCOUS-DAMAGE MODEL | 110 : C (INITIAL AND FINAL NONLINEAR THRESHOLDS AND PLASTIC PARAMETER) | 111 : C=====---------------------------------------------------------------- 112 : C 113 : CONS0 = FC01D / YOUNG 114 : C 115 : r_z = 1.D0 / (1.0 D0 - 2.0 D0 * RAT45) 116 : TANGB = ROOT2 * (1.0D0 - RAT45) * r_z 117 : PROVI = ROO23 * RAT45 * r_z 118 : C 119 : BPCOM = YOUNG * FCU1D * (STRAP - STREP / YOUNG) / 120 : . ((STRAP - CONS0) * (STREP + FCU1D)) 121 : C 122 : CONS1 = YOUNG - BPCOM 123 : CONS2 = BPCOM * CONS0 124 : CONS3 = ROO13 * TANGB - ROO23 125 : C 126 : THR0C = SQRT (PROVI*FC01D) 127 : r_z = CONS1 * STRAU + CONS2 128 : THRUC = SQRT (PROVI*r_z) 129 : C 130 : C=====---------------------------------------------------------------- 131 : C EVALUATION OF PARAMETERS AVALC & BVALC & ... | 132 : C=====---------------------------------------------------------------- 133 : C 133 : CALL DAM_AB (AVALC, BVALC, CONS1, CONS2, CONS3, EBOU1, 134 : . HBOUN, STRA1, STRA2, STRE1, STRE2, THR0C) 135 : C 136 : EBOU1 = 1.0 D+33 137 : C 138 : C===================================================================== 139 : C DEFINITION OF L* AND TENSION SOFTENING PARAMETERS. = 140 : C===================================================================== 141 : C 142 : C=====---------------------------------------------------------------- 143 : C CHARACTERISTIC LENGTH, IF NOT PREVIOUSLY SPECIFIED OR EVALUATED | 144 : C=====---------------------------------------------------------------- 145 : C 146 : IF (HLENG .EQ. 0.0 D0) THEN 147 : IF (DVOLU .EQ. 0.0 D0) THEN 148 : write (*,'(/,''*** DVOLU or HLENG is unidentified ***'')') 148 : CALL ERREUR(5) 149 : RETURN 150 : ENDIF 151 : CLENG = DVOLU**(1.0D0/FLOAT(NDIME)) 152 : ELSE 153 : CLENG = HLENG 154 : ENDIF 155 : C 156 : GTESP = GVALT / CLENG 157 : C 158 : IF (NCRIT .EQ. 1 ) THEN 159 : C 160 : ATINV = GTESP / (THR0T **2) - 0.5 D0 161 : IF (ATINV .LE. 0.0 D0) ATINV = ZEROM 162 : AVALT = 1.0 D0 / ATINV 163 : ELSE IF (NCRIT .EQ. 2) THEN 164 : C 165 : EXTCT = FTULT / YOUNG 166 : EXTTS = 1.0 D0 / REDUC * (2.0 D0 * GTESP / FTULT - 167 : . (1.0 D0 - REDUC) * EXTCT ) 168 : IF (EXTTS .LE. EXTCT) EXTTS = EXTCT + ZEROM 169 : BVALT = REDUC * EXTCT / (EXTTS - EXTCT) 170 : AVALT = BVALT * EXTTS * DYOUN 171 : ELSE 172 : write(*,'(/,''*** NCRIT : valeur incorrecte ***'')') 172 : CALL ERREUR(5) 173 : RETURN 174 : C 175 : END IF 176 : C 177 : C calcul de la matrice elastique 178 : STYPE = 'ISOTROPE' 179 : KCAS=1 180 : IRTD=1 180 : CALL DOHMAS (XMAT,STYPE,IFOUR,LHOOK,KCAS,DDHOOK,IRTD) 181 : IF (IRTD.EQ.0) THEN 181 : CALL ERREUR(5) 182 : RETURN 183 : ENDIF 184 : C 185 : IF (IFOUR.EQ.-2) THEN 186 : STYPE = 'PSTRES' 187 : ELSEIF ((IFOUR.EQ.-1).OR.(IFOUR.EQ.-3)) THEN 188 : STYPE = 'PSTRAI' 189 : ELSEIF (IFOUR.EQ. 0) THEN 190 : STYPE = 'AXISYM' 191 : ENDIF 192 : C 193 : C ENFORCE NO INITIAL STRESSES DUE TO TEMPERATURE..... 194 : NTEMP = 0 195 : ISTEG = 0 196 : ITERA = 0 197 : STRIN = 0.D0 198 : C 199 : THRET = VAR0(1) 200 : EQUIT = VAR0(2) 201 : DAMAT = VAR0(3) 202 : THREC = VAR0(4) 203 : EQUIC = VAR0(5) 204 : DAMAC = VAR0(6) 205 : C 206 : IF (THRET.EQ.0.) THRET = THR0T 207 : IF (THREC.EQ.0.) THREC = THR0C 208 : C 209 : do IE1=1,LHOOK 210 : EPST0(IE1)=EPST0(IE1)-EPIN0(IE1) 211 : enddo 211 : CALL MATVE1 (DDHOOK,EPST0,LHOOK,LHOOK,SIG0,1) 212 : C 212 : CALL DAMSTC (ISTEG, ITERA, 213 : . NCRIT, NDIME, NDIM1, LHOOK, LHOOK, NTEMP, 214 : . AVALC, AVALT, BPCOM, BVALC, BVALT, 215 : . DAMAC, DAMAT, DDHOOK, DEPST, DSIGT, EBOU1, 216 : . EQUIC, EQUIT, 217 : . POISS, SIG0 , SIGF , STRIN, TANGB, 218 : . THREC, THRET, THRUC, THR0C, THR0T, YOUNG, 219 : . STYPE) 220 : C 221 : VARF(1) = THRET 222 : VARF(2) = EQUIT 223 : VARF(3) = DAMAT 224 : VARF(4) = THREC 225 : VARF(5) = EQUIC 226 : VARF(6) = DAMAC 227 : C 228 : IF (IFOUR.EQ.-2)THEN 228 : CALL INVALM(DDHOOK,LHOOK,2,IRTD,1.d-8) 229 : DDHOOK(4,4)=1.D0/DDHOOK(4,4) 230 : ELSE 230 : CALL INVALM(DDHOOK,LHOOK,LHOOK,IRTD,1.d-8) 231 : ENDIF 232 : c 232 : CALL MATVE1(DDHOOK,SIG0,LHOOK,LHOOK,DEFP,1) 233 : c 234 : do IE1=1,LHOOK 235 : DEFP(IE1)=EPST0(IE1)+DEPST(IE1)-DEFP(IE1) 236 : enddo 237 : c 238 : RETURN 239 : END 240 : 241 :
© Cast3M 2003 - All rights reserved.
Disclaimer