Télécharger gernay.eso

Retour à la liste

Numérotation des lignes :

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

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