Télécharger gernay.eso

Retour à la liste

Numérotation des lignes :

  1. C GERNAY SOURCE BP208322 17/03/01 21:17:31 9325
  2.  
  3. SUBROUTINE GERNAY(WRK52,WRK53,WRK54,WRK3,IB,IGAU,NBPGAU)
  4. *
  5. *______________________________________________________________________
  6. *
  7. * MODELE GERNAY
  8. *______________________________________________________________________
  9. *
  10. IMPLICIT INTEGER(I-N)
  11. IMPLICIT REAL*8(A-H,O-Z)
  12.  
  13. -INC CCOPTIO
  14. -INC DECHE
  15. *
  16. SEGMENT WRK3
  17. REAL*8 WORK(LW),WORK2(LW2)
  18. ENDSEGMENT
  19. *
  20. PARAMETER(UN=1.D0,DEUX=2.D0,UNDEMI=.5D0)
  21. *
  22. REAL*8 YOUN, NU, BULK3, G2, LAM,
  23. & TETA0, DTETA, TETAF, ALPH, TREF, DYDT, DNDT,
  24. & YOUN0, NU0, BULK30, G20, LAM0,
  25. & YOUNF, NUF, BULK3F, G2F, LAMF,
  26. & DELDSE(6,6), ETHERM(6), DTHERM(6),
  27. & YREF, NREF, EPSE0(6), DEPSE(6),DHOOK(6,6),
  28. & DSIG2(3,3),DEPST2(3,3),TENS(3,3),DSIG(6),
  29. & V1(3),V2(3),V3(3),V(3,3),P(3,3)
  30.  
  31. REAL*8 PARAHOT3(83,1),sigma6v(6), deps6v(6),STRESS(6),DSTRAN(6)
  32. REAL*8 STRAN(6),STATEV(32),PROPS(10),DDSDDE(6,6)
  33. character*10 cmat
  34. logical lerror,lcp
  35. *
  36. * ON EXPLORE LE DECHE
  37. *
  38. NPT=1
  39. NOEL=1
  40. KERRE=0
  41. NMAT = XMAT(/1)
  42.  
  43. NVARI = VAR0(/1)
  44. NSTRS = SIG0(/1)
  45.  
  46. CALL ZERO(STRESS,6,1)
  47. CALL ZERO(STRAN,6,1)
  48. CALL ZERO(DSTRAN,6,1)
  49. CALL ZERO(STATEV,32,1)
  50. CALL ZERO(PARAHOT3,83,1)
  51. *
  52. * TRANSFER DE L'ETAT INITIAL, DU DEPST, ET DU MATERIAU
  53. *
  54. DO I=1,NSTRS
  55. STRESS(I) = SIG0(I)
  56. STRAN(I) = EPST0(I)
  57. DSTRAN(I)= DEPST(I)
  58. ENDDO
  59. *
  60. DO I=1,NVARI
  61. STATEV(I) = VAR0(I)
  62. ENDDO
  63. *
  64. PROPS( 1) = XMAT( 2)
  65. PROPS( 2) = XMAT( 5)
  66. PROPS( 3) = XMAT( 6)
  67. PROPS( 4) = XMAT( 7)
  68. PROPS( 5) = XMAT( 8)
  69. PROPS( 6) = XMAT( 9)
  70. PROPS( 7) = XMAT(10)
  71. PROPS( 8) = XMAT(11)
  72. PROPS( 9) = XMAT(12)
  73. PROPS(10) = XMAT( 1)
  74.  
  75. C
  76. C-----------------------------------------------------------------------
  77. C Constantes de materiau
  78. C ----------------------
  79. C PROPS(1) : NU Coefficient de Poisson
  80. c PROPS(2) : RC Resistance à la compression
  81. c PROPS(3) : RT Resistance à la traction
  82. c PROPS(4) : RB Resistance à la compression biaxiale
  83. c PROPS(5) : EPS1 Deformation au pic en compression
  84. c PROPS(6) : DILA Parametre de dilatance alpha_g
  85. c PROPS(7) : DAM1 Endommagement de compression au pic
  86. c PROPS(8) : XC Paramètre adimensionnel, rapport de l'energie de rupture
  87. c en compression dissipée avant le pic sur l'énergie totale
  88. c PROPS(9) : GT Densite d'energie de rupture en traction
  89. c PROPS(10) : YOUN Young pour le calcul de la rigidite elastique
  90. c
  91. C-----------------------------------------------------------------------
  92. C
  93.  
  94. * print *,' '
  95. * print *, ' POINT DINTEGRATION IGAU = ', IGAU
  96. * print *, ' stress', stress
  97. * print *, 'dstran', dstran
  98. * print *,' STATEV 1 à 4' , (statev(i),i=1,4)
  99. * print *,' STATEV 5 à 10 epspl ', (statev(i),i=5,10)
  100. * print *,' STATEV 11 à 16 epstr ', (statev(i),i=11,16)
  101. * print *,' STATEV 17 à 22 sig,eff,c ', (statev(i),i=17,22)
  102. * print *,' STATEV 24 à 29 sig,eff ', (statev(i),i=24,29)
  103. * print *,' STATEV 30 à 32 tmax,phi,epsth ',(statev(i),i=30,32)
  104.  
  105. cmat = 'SICO_ETC3D'
  106. idimpara3 = 83
  107. c ATTENTION si idimpara3 est modifié il faut modifier aussi la dimension
  108. c de parahot3 (plus haut)
  109. lerror = .false.
  110. **** npttot3=30
  111. npttot3=1
  112. *
  113. lcp = .false.
  114. *
  115. * CAS CONTRAINTES PLANES
  116. *
  117. if (IFOUR.EQ.-2) then
  118. lcp = .true.
  119. endif
  120.  
  121.  
  122. * TEMPERATURES EN DEBUT ET FIN DE PAS
  123.  
  124. TETA1 = ture0(1)
  125. TETA2 = turef(1)
  126.  
  127. C Recuperation des constantes de materiau
  128. C
  129. PARAHOT3(2,NPT) = PROPS(1)
  130. PARAHOT3(3,NPT) = PROPS(2)
  131. PARAHOT3(4,NPT) = PROPS(3)
  132. PARAHOT3(7,NPT) = PROPS(4)
  133. PARAHOT3(5,NPT) = PROPS(5)
  134. PARAHOT3(8,NPT) = PROPS(6)
  135. PARAHOT3(9,NPT) = PROPS(7)
  136. PARAHOT3(10,NPT)= PROPS(8)
  137. PARAHOT3(11,NPT)= PROPS(9)
  138. C
  139. c remplissage des variables internes
  140. c accumulated plastic strain kappa at the beginning of the step
  141. c in tension and in compression
  142. PARAHOT3(idimpara3-37,NPT) = STATEV(1)
  143. PARAHOT3(idimpara3-36,NPT) = STATEV(2)
  144.  
  145. c damage variable in tension and in compression
  146. PARAHOT3(idimpara3-41,NPT) = STATEV(3)
  147. PARAHOT3(idimpara3-40,NPT) = STATEV(4)
  148.  
  149. c plastic strains
  150. do i=1,6
  151. PARAHOT3(idimpara3-25+i,NPT) = STATEV(4+i)
  152. end do
  153.  
  154. c transient creep strain at the beginning of the step
  155. do i=1,6
  156. PARAHOT3(17+i,NPT) = STATEV(10+i)
  157. end do
  158.  
  159. c effective stress in compression (used for transient creep strain calculation)
  160. do i=1,6
  161. PARAHOT3(23+i,NPT) = STATEV(16+i)
  162. end do
  163. do i=1,6
  164. PARAHOT3(29+i,NPT) = PARAHOT3(23+i,NPT)
  165. end do
  166.  
  167. c effective stress after convergence (used for sigf3d forward calculation)
  168. do i=1,6
  169. PARAHOT3(idimpara3-7+i,NPT) = STATEV(23+i)
  170. end do
  171.  
  172. c remplissage des contraintes
  173. c remplissage du vecteur contraintes et du vecteur
  174. c increment de deformation
  175. if (.not.lcp) then
  176. do i=1,6
  177. PARAHOT3(idimpara3-13+i,NPT) = STRESS(i)
  178. sigma6v(i)= STRESS(i)
  179. deps6v(i)= DSTRAN(i)
  180. end do
  181. else
  182. do i=1,4
  183. PARAHOT3(idimpara3-13+i,NPT) = STRESS(i)
  184. sigma6v(i)= STRESS(i)
  185. deps6v(i)= DSTRAN(i)
  186. end do
  187. PARAHOT3(idimpara3-8,NPT)=0.d0
  188. PARAHOT3(idimpara3-7,NPT)=0.d0
  189. sigma6v(5) = 0.d0
  190. sigma6v(6) = 0.d0
  191. deps6v(5) = 0.d0
  192. deps6v(6) = 0.d0
  193. endif
  194.  
  195. c remplissage des deformations au debut du pas t
  196. c et en fin de pas
  197. if (.not.lcp) then
  198. do i=1,6
  199. PARAHOT3(idimpara3-31+i,NPT) = STRAN(i)
  200. PARAHOT3(idimpara3-19+i,NPT) = STRAN(i) + DSTRAN(i)
  201. end do
  202. else
  203. do i=1,4
  204. PARAHOT3(idimpara3-31+i,NPT) = STRAN(i)
  205. PARAHOT3(idimpara3-19+i,NPT) = STRAN(i) + DSTRAN(i)
  206. end do
  207. endif
  208.  
  209. c TEMPERATURES
  210.  
  211. c ********************************************************************************
  212. c probleme pour vecteur STATEV - STATEV(30,31,32) ne passe pas d'un pas à l'autre
  213. c => il faut passer le vecteur STATEV à 32 composantes au lieu de 29
  214. c ********************************************************************************
  215. c actualisation de la temperature au pas courant
  216. **** TEMP = TEMP + DTEMP
  217. **** PARAHOT3(idimpara3-39,NPT) = TEMP
  218. PARAHOT3(idimpara3-39,NPT) = TETA2
  219. c actualisation éventuelle de la temperature maximale atteinte
  220. **** if (TEMP.gt.STATEV(30)) STATEV(30) = TEMP
  221. if (TETA2.gt.STATEV(30)) STATEV(30) = TETA2
  222. PARAHOT3(idimpara3-38,NPT) = STATEV(30)
  223.  
  224. c phi function
  225. PARAHOT3(17,NPT) = STATEV(31)
  226.  
  227. c Thermal strain
  228. PARAHOT3(idimpara3,NPT) = STATEV(32)
  229.  
  230. c appel a mater2
  231. NTOT = 1
  232.  
  233. CALL MATER2TG (cmat,NTOT, lerror,idimpara3, parahot3, npttot3,
  234. & ddsdde, sigma6v, deps6v,lcp,NOEL,NPT,Kinc)
  235. * print *, ' sortie de mater2tg'
  236.  
  237. CALL MATER3TG (cmat,npt,idimpara3,parahot3,npttot3,lcp,
  238. . NOEL,NPT)
  239. * print *, ' sortie de mater3tg'
  240.  
  241. C sauvetage des resultats
  242.  
  243. c remplissage des contraintes
  244. if (.not.lcp) then
  245. do i=1,6
  246. STRESS(i) = sigma6v(i)
  247. end do
  248. else
  249. do i=1,4
  250. STRESS(i) = sigma6v(i)
  251. end do
  252. endif
  253. c if ((NOEL.eq.18).and.(NPT.eq.23)) then
  254. * print *,'GERNAY CONTRAINTES EN FIN DE PAS stress = ', stress
  255. c endif
  256.  
  257. c actualisation des variables internes
  258. c accumulated plastic strain kappa at the beginning of the step
  259. c in tension and in compression
  260. STATEV(1) = PARAHOT3(idimpara3-37,NPT)
  261. STATEV(2) = PARAHOT3(idimpara3-36,NPT)
  262.  
  263. c damage variable in tension and in compression
  264. STATEV(3) = PARAHOT3(idimpara3-41,NPT)
  265. STATEV(4) = PARAHOT3(idimpara3-40,NPT)
  266.  
  267. c plastic strains
  268. do i=1,6
  269. STATEV(4+i) = PARAHOT3(idimpara3-25+i,NPT)
  270. end do
  271.  
  272. c transient creep strain at the beginning of the step
  273. do i=1,6
  274. STATEV(10+i) = PARAHOT3(17+i,NPT)
  275. end do
  276.  
  277. c effective stress in compression (used for transient creep strain calculation)
  278. do i=1,6
  279. STATEV(16+i) = PARAHOT3(23+i,NPT)
  280. end do
  281.  
  282. c equivalent strain
  283. STATEV(23) = STATEV(1) + STATEV(2)
  284.  
  285. c effective stress after convergence (used for sigf3d forward calculation)
  286. do i=1,6
  287. STATEV(23+i) = PARAHOT3(idimpara3-7+i,NPT)
  288. end do
  289.  
  290. c maximum temperature
  291. STATEV(30) = PARAHOT3(idimpara3-38,NPT)
  292.  
  293. c phi function
  294. STATEV(31) = PARAHOT3(17,NPT)
  295.  
  296. c Thermal strain
  297. STATEV(32) = PARAHOT3(idimpara3,NPT)
  298.  
  299. c do iloc=1,NTENS
  300. do iloc=1,4
  301. test = ABS(stress(iloc))
  302. if (test.gt.10.d20) then
  303. print *,'>>>>>>>>>>>>>>>>>>>> problem stress = ',
  304. . stress
  305. print *,'in NOEL = , NPT = ', IB , IGAU
  306. KINC = -2
  307. endif
  308. enddo
  309. if (KINC.eq.-2) then
  310. print *,'in NOEL = , NPT = ', IB , IGAU
  311. endif
  312. *
  313. * TRANSFERT DE L'ETAT FINAL
  314. *
  315. DO I=1,NSTRS
  316. SIGF(I) = STRESS(I)
  317. ENDDO
  318. *
  319. DO I=1,NVARI
  320. VARF(I) = STATEV(I)
  321. ENDDO
  322. *
  323. RETURN
  324. END
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales