Télécharger fattt.eso

Retour à la liste

Numérotation des lignes :

fattt
  1. C FATTT SOURCE CHAT 07/12/04 21:15:58 5985
  2. C FATTT
  3. SUBROUTINE FATTT(WRK0,WRK1,WRK5,NSTRS,NVARI,NMATT,ISTEP,
  4. 1 ICARA,KERRE,MFR,DT)
  5. C MAZZZ SOURCE CHAT 05/01/13 01:38:25 5004
  6. C SUBROUTINE MAZZZ(WRK0,WRK1,WRK5,NSTRS,NVARI,NMATT,ISTEP,
  7. C 1 ICARA,KERRE,MFR)
  8. *======================================================================
  9. * DB
  10. * New source: one nonlocal damage material model added:
  11. * Fatigue damage
  12. * This routine is very similar to MAZZZ.ESO
  13. *======================================================================
  14. C
  15. C calcule la deformation initiale et l'increment de deformation
  16. C a partir de la contrainte initiale et l'increment de contrainte
  17. C elastique puis appelle la subroutine MAZARS
  18. C
  19. C
  20. C variables en entree
  21. C
  22. C WRK0,KRK1,WRK5 pointeurs sur des segments de travail
  23. C
  24. C NSTRS nombre de composantes dans les vecteurs des contraintes
  25. C et les vecteurs des deformations
  26. C
  27. C NVARI nombre de variables internes (doit etre egal a 2)
  28. C
  29. C NMATT nombre de constantes du materiau
  30. C
  31. C ISTEP flag utilise pour separer les etapes dans un calcul non local
  32. C ISTEP=0 -----> calcul local
  33. C ISTEP=1 -----> calcul non local etape 1 on calcule les seuils
  34. C ISTEP=2 -----> calcul non local etape 2 on continue le calcul
  35. C a partir des seuils moyennes
  36. C
  37. C
  38. C variables en sortie
  39. C
  40. C VARF variables internes finales dans WRK0
  41. C
  42. C SIGF contraintes finales dans WRK0
  43. C
  44. C Modif L.Bode - 09/10/92 - Traitement particulier des coques
  45. C Modif L.Bode - 14/10/92 - Modifications complementaires
  46. C
  47. IMPLICIT INTEGER(I-N)
  48. IMPLICIT REAL*8(A-H,O-Z)
  49.  
  50. -INC PPARAM
  51. -INC CCOPTIO
  52. SEGMENT WRK0
  53. REAL*8 XMAT(NMATT)
  54. ENDSEGMENT
  55. *
  56. SEGMENT WRK1
  57. REAL*8 DDHOOK(LHOOK,LHOOK),SIG0(NSTRS),DEPST(NSTRS)
  58. REAL*8 SIGF(NSTRS),VAR0(NVARI),VARF(NVARI)
  59. REAL*8 DEFP(NSTRS),XCAR(ICARA)
  60. ENDSEGMENT
  61. SEGMENT WRKK2
  62. REAL*8 EPSILI(NSTRSV),DSIGT(NSTRSV)
  63. END SEGMENT
  64. *
  65. SEGMENT WRK5
  66. REAL*8 EPIN0(NSTRS),EPINF(NSTRS),EPST0(NSTRS)
  67. ENDSEGMENT
  68. SEGMENT WRK6
  69. REAL*8 SIG0S(NSTRS),DEPSTS(NSTRS)
  70. END SEGMENT
  71. *
  72. CHARACTER*8 CMATE
  73. INTEGER NSTRS,NVARI,NMATT
  74. INTEGER KCAS,IRTD,ISTRS,KERRE,MFR
  75. REAL*8 PREC,EPAI,FAC,AUX,AUX1,AUX2,YOUN,XNU
  76. REAL*8 UN
  77. PARAMETER (UN=1.D0)
  78. KERRE=0
  79. YOUN = XMAT(1)
  80. XNU = XMAT(2)
  81. C
  82. C ON CALCULE LES CONTRAINTES VRAIES DANS LE CAS DES COQUES
  83. C
  84. C print*,'dans mazzzz MFR=', mfr
  85. IF (MFR .EQ. 9) THEN
  86. EPAI=XCAR(1)
  87. SEGINI WRK6
  88. DO 101 ISTRS=1,NSTRS
  89. SIG0S(ISTRS)=SIG0(ISTRS)
  90. DEPSTS(ISTRS)=DEPST(ISTRS)
  91. 101 CONTINUE
  92. NSTRSV=4
  93. IFOUR2=-2
  94. C Modif L.Bode - 14/10/92
  95. C Dans le cas des coques, on force la dimension a 2 pour MAZARS
  96. C ie on travaille en contraintes planes
  97. JDIM =2
  98. C Fin modif L.Bode
  99. DO 102 ISTRS=1,2
  100. SIG0(ISTRS)=SIG0S(ISTRS)/EPAI
  101. 102 CONTINUE
  102. DEPST(3)=0.D0
  103. DEPST(4)=DEPSTS(3)
  104. SIG0(3)=0.D0
  105. SIG0(4)=SIG0S(3)/EPAI
  106. ELSE IF (MFR .EQ. 1) THEN
  107. NSTRSV=NSTRS
  108. IFOUR2=IFOUR
  109. C Modif L.Bode - 14/10/92
  110. C Pour les elts massifs, on utilise la vraie dimension
  111. JDIM = IDIM
  112. C Fin modif L.Bode
  113. ELSE
  114. PRINT*,'MFR=',MFR
  115. KERRE=57
  116. RETURN
  117. END IF
  118. SEGINI WRKK2
  119.  
  120.  
  121. C
  122. C calcul de la matrice elastique
  123. C
  124. CMATE = 'ISOTROPE'
  125. KCAS=1
  126. * print*,'increment de deformation elastique'
  127. CALL DOHMAS(XMAT,CMATE,IFOUR2,NSTRSV,KCAS,DDHOOK,IRTD)
  128. * DO ISTRS=1,NSTRS
  129. * print*,(DDHOOK(ISTRS,J),j=1,nstrs)
  130. * print*,DEPST(ISTRS)
  131. * END DO
  132. IF ( IRTD .EQ. 1) THEN
  133. C
  134. C calcul de l'increment de contrainte
  135. C
  136. CALL MATVE1 (DDHOOK,DEPST,NSTRSV,NSTRSV,DSIGT,1)
  137. C
  138. C
  139. C inversion de cette matrice
  140. C
  141. PREC=1.D-08
  142. CALL DOHMAS(XMAT,CMATE,IFOUR2,NSTRSV,2,DDHOOK,IRTD)
  143. * DO ISTRS=1,NSTRSV
  144. * print*,(DDHOOK(ISTRS,J),j=1,nstrsv)
  145. * END DO
  146. * print*,'appel a invalm'
  147. CALL INVALM(DDHOOK,NSTRSV,NSTRSV,IRTD,PREC)
  148. IF (IRTD.EQ.0)THEN
  149. C
  150. C calcul des deformations du materiau elastique lineaire
  151. C
  152. * print*,'appel a matve1'
  153. CALL MATVE1 (DDHOOK,SIG0,NSTRSV,NSTRSV,EPSILI,1)
  154. C
  155. C modification pour tenir compte de l'endommagement
  156. C
  157. DO 100 ISTRS=1,NSTRSV
  158. EPSILI(ISTRS)=EPSILI(ISTRS)+EPIN0(ISTRS)
  159. 100 CONTINUE
  160.  
  161. C
  162. C appel a la routine MAZARS
  163. C
  164. C Modif L.Bode - 14/10/92
  165. C On envoie la dimension et le numero de la formulation
  166. C ( Elts Coques JDIM =2 , IFOUR2 = -2 => contraintes planes
  167. C Elts Massifs JDIM = IDIM ,IFOUR2 = IFOUR)
  168. * print*,'appel a mazars'
  169. * CALL MAZARS (WRK0,WRK1,WRKK2,WRK5,NSTRSV,NVARI,NMATT,
  170. * 1 ISTEP,ICARA,JDIM,IFOUR2)
  171. C Fin modif L.Bode
  172. * DB
  173. *
  174. CALL FATI (WRK0,WRK1,WRKK2,WRK5,NSTRSV,NVARI,NMATT,
  175. 1 ISTEP,ICARA,JDIM,IFOUR2,DT)
  176. *
  177. * DB
  178. C
  179. C ON RECALCULE LES CONTRAINTES EFFECTIVES POUR LES COQUES
  180. C
  181. * print*,'apres mazars'
  182. IF (MFR .EQ. 9) THEN
  183.  
  184.  
  185. C
  186. C ON MET A JOUR DE FACON NON LINEAIRE LA PARTIE MEMBRANE
  187. C ET LES PARTIES FLEXION ET EFFORTS
  188. C TRANCHANTS LE CAS ECHEANT
  189. C
  190. FAC=(EPAI**3)/12.D0
  191. AUX =FAC*YOUN/(1.D0-XNU*XNU)
  192. AUX1=FAC*YOUN*.5D0/(1.D0+XNU)
  193. AUX2=EPAI*YOUN*.5D0/(1.d0+XNU)/1.2d0
  194. DO 103 ISTRS=1,NSTRS
  195. SIG0(ISTRS)=SIG0S(ISTRS)
  196. DEPST(ISTRS)=DEPSTS(ISTRS)
  197. 103 CONTINUE
  198.  
  199. DO 104 ISTRS=1,2
  200. SIGF (ISTRS)=SIGF(ISTRS)*EPAI
  201. 104 CONTINUE
  202. SIGF(3)=SIGF(4)*EPAI
  203. SIGF(4)=SIG0(4)+AUX*(DEPST(4)+XNU*DEPST(5))
  204. SIGF(5)=SIG0(5)+AUX*(DEPST(5)+XNU*DEPST(4))
  205. SIGF(6)=SIG0(6)+AUX1*DEPST(6)
  206. SIGF(7)=SIG0(7)+AUX2*DEPST(7)
  207. SIGF(8)=SIG0(8)+AUX2*DEPST(8)
  208. SEGSUP WRK6
  209. END IF
  210. ELSE
  211. print*,'erreur dans invalm'
  212. KERRE=56
  213. END IF
  214. ELSE
  215. print*,'erreur dans dohmas'
  216. KERRE=56
  217. END IF
  218. SEGSUP WRKK2
  219. RETURN
  220. END
  221.  
  222.  
  223.  
  224.  
  225.  

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