Télécharger biflex.eso

Retour à la liste

Numérotation des lignes :

  1. C BIFLEX SOURCE BP208322 15/06/22 21:15:22 8543
  2. SUBROUTINE BIFLEX(WRK0,WRK1,NSTRS,NVARI,NMATT,ICARA,CMATE,KERRE)
  3. *--------------------------------------------------------------------*
  4. * ecoulement du modele a fibre, interface avec ecoul2
  5. *--------------------------------------------------------------------*
  6. C
  7. C
  8. C variables en entree
  9. C
  10. C WRK0,KRK1 pointeurs sur des segments de travail
  11. C
  12. C NSTRS nombre de composantes dans les vecteurs des contraintes
  13. C et les vecteurs des deformations
  14. C
  15. C NVARI nombre de variables internes (doit etre egal a 2)
  16. C
  17. C NMATT nombre de constantes du materiau
  18. C
  19. C
  20. C variables en sortie
  21. C
  22. C VARF variables internes finales dans WRK1
  23. C
  24. C SIGF contraintes finales dans WRK1
  25. C
  26. *--------------------------------------------------------------------*
  27. * Pierre Pegon (ISPRA) Juillet/Aout 1993 *
  28. * Fevrier 1996 nouvel ecou *
  29. *--------------------------------------------------------------------*
  30. IMPLICIT INTEGER(I-N)
  31. IMPLICIT REAL*8(A-H,O-Z)
  32. *
  33. -INC CCOPTIO
  34. -INC SMCHAML
  35. -INC SMELEME
  36. -INC SMCOORD
  37. -INC SMMODEL
  38. -INC SMINTE
  39. -INC CCHAMP
  40. -INC SMLREEL
  41. C
  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. *
  52. DIMENSION DEPSI(6),SIGMA(6),DSIGT(6)
  53. DIMENSION CRIGI(12),CMASS(12)
  54. *
  55. CHARACTER*8 CMATE
  56. INTEGER NSTRS,NVARI,NMATT
  57. INTEGER IRTD,ISTRS,KERRE
  58. KERRE=0
  59. C
  60. C calcul ou recuperation de la matrice elastique
  61. C
  62. IPMODL = NINT(XMAT(1))
  63. IPCAR = NINT(XMAT(2))
  64. MLREEL = NINT(XMAT(3))
  65. IF(MLREEL.EQ.0)THEN
  66. CALL FRIGIE(IPMODL,IPCAR,CRIGI,CMASS)
  67. CALL DOHTIF(CRIGI,CMATE,IFOUR,NSTRS,DDHOOK,IRTD)
  68. ELSE
  69. SEGACT, MLREEL
  70. IF (PROG(/1).NE.NSTRS**2)THEN
  71. IRTD = 0
  72. ELSE
  73. IRTD = 1
  74. CALL DOHOOO(PROG,NSTRS,DDHOOK)
  75. ENDIF
  76. SEGDES, MLREEL
  77. ENDIF
  78. C
  79. IF ( IRTD .EQ. 1) THEN
  80. C
  81. C calcul de l incrément de contrainte (pour les defo plastique)
  82. C
  83. CALL MATVE1 (DDHOOK,DEPST,NSTRS,NSTRS,DSIGT,2)
  84. C
  85. C inversion de la matrice DDHOOK
  86. C
  87. PREC=1.D-08
  88. CALL INVALM(DDHOOK,NSTRS,NSTRS,IRTD,PREC)
  89. IF (IRTD.EQ.0)THEN
  90. C
  91. C chargement de l'increment de deformation
  92. C
  93. DO I=1,NSTRS
  94. DEPSI(I)=DEPST(I)
  95. ENDDO
  96. C
  97. C recuperation du modele, des materiaux, des contraintes
  98. C et des varint de la section
  99. C
  100. IPSIG0=NINT(VAR0(1))
  101. IPVAR0=NINT(VAR0(2))
  102. IF(IPSIG0.EQ.0) CALL ZEROP(IPMODL,'CONTRAIN',IPSIG0)
  103. IF(IPVAR0.EQ.0) CALL ZEROP(IPMODL,'VARINTER',IPVAR0)
  104. C
  105. C ecoulement de la section
  106. C
  107. CALL FCOUL1(DEPSI,IPMODL,IPSIG0,IPVAR0,IPCAR,
  108. $ SIGMA,IPSIGF,IPVARF,IRETO,NSTRS)
  109. IF(IRETO.EQ.0) THEN
  110. print*,'erreur dans fcoul1'
  111. KERRE=56
  112. END IF
  113. C
  114. C calcul de l'increment de deformation plastique
  115. C
  116. DO I=1,NSTRS
  117. SIGF (I)=SIGMA(I)
  118. DSIGT(I)=DSIGT(I) - (SIGF(I) - SIG0(I))
  119. END DO
  120. C
  121. CALL MATVE1 (DDHOOK,DSIGT,NSTRS,NSTRS,DEFP,1)
  122. DO I=1,NSTRS
  123. END DO
  124. C
  125. C sortie des variables internes
  126. C
  127. VARF(1)=DBLE(IPSIGF)
  128. VARF(2)=DBLE(IPVARF)
  129. ELSE
  130. print*,'erreur dans invalm'
  131. KERRE=56
  132. END IF
  133. ELSE
  134. print*,'erreur dans dohtif'
  135. KERRE=56
  136. END IF
  137. C
  138. 998 RETURN
  139. END
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  

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