Télécharger cmazzz.eso

Retour à la liste

Numérotation des lignes :

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

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