Télécharger mazzz.eso

Retour à la liste

Numérotation des lignes :

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

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