Download damatc.eso

Back to the list

   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