Télécharger cmvmmm.eso

Retour à la liste

Numérotation des lignes :

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

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