Télécharger mvmmm.eso

Retour à la liste

Numérotation des lignes :

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

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