Télécharger defval.eso

Retour à la liste

Numérotation des lignes :

defval
  1. C DEFVAL SOURCE CB215821 26/08/24 21:16:02 12622
  2. SUBROUTINE DEFVAL(NUMAT1,NBPTEL,NDEF,
  3. . IMAT,IVACAR,ICAR,IVASTR,IVARI,IVADEF,IVADET,
  4. . IVADS,MFR,CMATE,INPLAS,IB,IGAU,IND,
  5. . WTRAV,WRK1,WRK5,SECT,EPAIST)
  6.  
  7. *********************************************************
  8. * ENTREES
  9. *********************************************************
  10. *
  11. * NUMAT1 : dimension de VALMAT
  12. * NUCAR : dimension de VALCAR
  13. * NBPTEL : nombre de points de Gauss par éléments
  14. * NSTRS : nombre de composantes du tenseur des contraintes
  15. * NVARI : nombre de variables internes
  16. * NDEF : nombre de composantes du tenseur des deformations
  17. * IMAT : pointeur sur un segment mptval de materiau (utilise par calsig)
  18. * IVACAR : pointeur sur un segment mptval de cacarteristiques geometriques
  19. * ICAR : pointeur sur un segment mptval de caracteristiques
  20. * geometriques (utilise par calsig)
  21. * IVASTR : pointeur sur un segment mptval de contraintes
  22. * IVARI : pointeur sur un segment mptval de variables internes
  23. * IVADEF : pointeur sur un segment mptval de deformations
  24. * IVADET : pointeur sur un segment mptval de deformations
  25. * IVADS : pointeur sur un segment mptval de contraintes (increments)
  26. * MFR : formulation de l'élément
  27. * CMATE : nom du matériau
  28. * INPLAS : numéro de matériau inélastique
  29. * IB : numéro de l'élément
  30. * IGAUS : numéro du point de Gauss
  31. * IND : indice de prise en compte des déformations plastiques initiales
  32. * IND=1 : oui
  33. * IND=0 : non
  34. *
  35. **********************************************************************
  36. * SORTIES
  37. **********************************************************************
  38. *
  39. * VALMAT(NUMAT1) : champ de caratéristiques du matériau
  40. * VALCAR(NUCAR) : (WTRAV)
  41. * SIG0(NSTRS) : contraintes au début du pas (WRK1)
  42. * EPST0(NSTRS) : deformations au début du pas (WRK5)
  43. * VAR0(NVARI) : variables internes au début du pas (WRK1)
  44. * EPIN0(NVARI) : déformations inélastiques au début du pas
  45. * (éventuellement) (WRK5)
  46. * DEPST(NSTRS) : incrément de déformation totale (WRK1)
  47. * SECT : section de l'élément IB (éventuel)
  48. * EPAIST : épaisseur et excentrement ( éventuel)
  49. *
  50. ***********************************************************************
  51.  
  52. IMPLICIT INTEGER(I-N)
  53. IMPLICIT REAL*8(A-H,O-Z)
  54.  
  55. -INC PPARAM
  56. -INC CCOPTIO
  57.  
  58. -INC SMCHAML
  59.  
  60. -INC TMPTVAL
  61.  
  62. CHARACTER*8 CMATE
  63. *
  64. SEGMENT WRK1
  65. REAL*8 DDHOOK(LHOOK,LHOOK),SIG0(NSTRS),DEPST(NSTRS)
  66. REAL*8 SIGF(NSTRS),VAR0(NVARI),VARF(NVARI)
  67. REAL*8 DEFP(NSTRS),XCAR(ICARA)
  68. ENDSEGMENT
  69. *
  70. SEGMENT WRK5
  71. REAL*8 EPIN0(NSTRS),EPINF(NSTRS),EPST0(NSTRS)
  72. ENDSEGMENT
  73. *
  74. SEGMENT WTRAV
  75. REAL*8 DDAUX(LHOOK,LHOOK),VALMAT(NUMAT)
  76. REAL*8 VALCAR(NUCAR),DSIGT(NSTRS)
  77. REAL*8 TXR(IDIM,IDIM),DDHOMU(LHOOK,LHOOK)
  78. REAL*8 XLOC(3,3),XGLOB(3,3)
  79. REAL*8 D1HOOK(LHOOK,LHOOK),ROTHOO(LHOOK,LHOOK)
  80. ENDSEGMENT
  81. *
  82. * recuperation de valmat et de valcar
  83. *
  84. NUCAR=VALCAR(/1)
  85. NSTRS=SIG0(/1)
  86. NVARI=VAR0(/1)
  87. CALL ZERO(VALMAT,NUMAT1,1)
  88. CALL ZERO(VALCAR,NUCAR,1)
  89. *
  90. MPTVAL=IMAT
  91. DO 1005 IM=1,NUMAT1
  92. IF (IVAL(IM).NE.0) THEN
  93. MELVAL=IVAL(IM)
  94. IF(VELCHE(/1)+VELCHE(/2).NE.0) THEN
  95. IBMN=MIN(IB ,VELCHE(/2))
  96. IGMN=MIN(IGAU,VELCHE(/1))
  97. VALMAT(IM)=VELCHE(IGMN,IBMN)
  98. ELSE IF(IELCHE(/1)+IELCHE(/2).NE.0) THEN
  99. IBMN=MIN(IB ,IELCHE(/2))
  100. IGMN=MIN(IGAU,IELCHE(/1))
  101. VALMAT(IM)=DBLE(IELCHE(IGMN,IBMN))
  102. ELSE
  103. VALMAT(IM)=0.D0
  104. ENDIF
  105. ELSE
  106. VALMAT(IM)=0.D0
  107. ENDIF
  108. 1005 CONTINUE
  109. ** valmat est dimensionnee a 4 dans le cas test endoaxi1
  110. ** et n'est jamais utilise au dessus
  111. * IF(INPLAS.EQ.26) THEN
  112. * VALMAT(7)=VALMAT(3)
  113. * DO 1006 ICOMP=3,6
  114. * VALMAT(ICOMP)=0.D0
  115. *1006 CONTINUE
  116. * ENDIF
  117. *
  118. IF ((MFR.EQ.7.OR.MFR.EQ.13.OR.MFR.EQ.15.OR.MFR.EQ.17).AND.
  119. 1 CMATE.NE.'SECTION') THEN
  120. *
  121. IF (MFR.EQ.15) THEN
  122. MPTVAL=IVACAR
  123. NUCAR=NUCAR/2
  124. IE=1
  125. DO 1106 IC=1,3,2
  126. DO 1007 ICOMP=1,NUCAR
  127. MELVAL=IVAL(ICOMP)
  128. IF (MELVAL.NE.0) THEN
  129. IGMN=MIN(IC,VELCHE(/1))
  130. IBMN=MIN(IB,VELCHE(/2))
  131. VALCAR(IE)=VELCHE(IGMN,IBMN)
  132. ELSE
  133. VALCAR(IE)=0.D0
  134. ENDIF
  135. IE=IE+1
  136. 1007 CONTINUE
  137. 1106 CONTINUE
  138. *
  139. ELSE
  140. MPTVAL=ICAR
  141. DO 1010 ICOMP=1,NUCAR
  142. r_z = 0.D0
  143. MELVAL=IVAL(ICOMP)
  144. IF (MELVAL.NE.0) THEN
  145. IBMN=MIN(IB ,VELCHE(/2))
  146. DO IAUX1=1,NBPTEL
  147. IGMN=MIN(IAUX1,VELCHE(/1))
  148. r_z = r_z + VELCHE(IGMN,IBMN)
  149. ENDDO
  150. r_z = r_z / NBPTEL
  151. ENDIF
  152. VALCAR(ICOMP) = r_z
  153. 1010 CONTINUE
  154. ENDIF
  155. ENDIF
  156. *
  157. * on recupere les contraintes initiales
  158. *
  159. MPTVAL=IVASTR
  160. DO 1101 IC=1,NSTRS
  161. MELVAL=IVAL(IC)
  162. IBMN=MIN(IB,VELCHE(/2))
  163. IGMN=MIN(IGAU,VELCHE(/1))
  164. SIG0(IC)=VELCHE(IGMN,IBMN)
  165. 1101 continue
  166. *
  167. * on recupere les variables internes
  168. *
  169. MPTVAL=IVARI
  170. DO IC=1,NVARI
  171. MELVAL=IVAL(IC)
  172. IF(IELCHE(/1)+IELCHE(/2).NE.0) THEN
  173. IBMN=MIN(IB,IELCHE(/2))
  174. IGMN=MIN(IGAU,IELCHE(/1))
  175. VAR0(IC)=DBLE(IELCHE(IGMN,IBMN))
  176. ELSE IF(VELCHE(/1)+VELCHE(/2).NE.0) THEN
  177. IBMN=MIN(IB,VELCHE(/2))
  178. IGMN=MIN(IGAU,VELCHE(/1))
  179. VAR0(IC)=VELCHE(IGMN,IBMN)
  180. ENDIF
  181. END DO
  182. *
  183. * on recupere les deformations inelastiques initiales si besoin
  184. *
  185. IF(IND.EQ.1.OR.INPLAS.EQ.31.OR.INPLAS.EQ.30
  186. . .OR.INPLAS.EQ.34.OR.INPLAS.EQ.37
  187. . .OR.INPLAS.EQ.47.OR.INPLAS.EQ.66
  188. . .OR.INPLAS.EQ.75.OR.INPLAS.EQ.118
  189. . .OR.INPLAS.EQ.141) THEN
  190. MPTVAL=IVADEF
  191. DO 1103 IC=1,NDEF
  192. MELVAL=IVAL(IC)
  193. IBMN=MIN(IB,VELCHE(/2))
  194. IGMN=MIN(IGAU,VELCHE(/1))
  195. EPIN0(IC)=VELCHE(IGMN,IBMN)
  196. 1103 continue
  197. ENDIF
  198. *
  199. * on recupere les deformations totales si besoin
  200. *
  201. IF(MFR.EQ.33) THEN
  202. MPTVAL=IVADET
  203. DO 1104 IC=1,NDEF
  204. MELVAL=IVAL(IC)
  205. IBMN=MIN(IB,VELCHE(/2))
  206. IGMN=MIN(IGAU,VELCHE(/1))
  207. EPST0(IC)=VELCHE(IGMN,IBMN)
  208. 1104 continue
  209. ENDIF
  210. *
  211. * on recupere les increments de deformations totales
  212. *
  213. MPTVAL=IVADS
  214. DO 1105 IC=1,NSTRS
  215. MELVAL=IVAL(IC)
  216. IBMN=MIN(IB,VELCHE(/2))
  217. IGMN=MIN(IGAU,VELCHE(/1))
  218. DEPST(IC)=VELCHE(IGMN,IBMN)
  219. 1105 continue
  220. *
  221. IF(MFR.EQ.27.OR.MFR.EQ.49) THEN
  222. *
  223. * on cherche la section de l'element ib
  224. *
  225. MPTVAL=ICAR
  226. MELVAL=IVAL(1)
  227. IF (MELVAL.NE.0) THEN
  228. IBMN=MIN(IB ,VELCHE(/2))
  229. IGMN=MIN(IGAU,VELCHE(/1))
  230. SECT=VELCHE(IGMN,IBMN)
  231. ELSE
  232. SECT=0.D0
  233. ENDIF
  234. ENDIF
  235. *
  236. * prise en compte de l'epaisseur et de l'excentrement
  237. * dans le cas des coques minces avec ou sans cisaillement
  238. * transverse
  239. *
  240. IF ((CMATE.EQ.'ISOTROPE'.OR.CMATE.EQ.'ORTHOTRO'.
  241. 1 OR.CMATE.EQ.'UNIDIREC').AND.
  242. 2 (MFR.EQ.3.OR.MFR.EQ.9)) THEN
  243. MPTVAL=ICAR
  244. MELVAL=IVAL(1)
  245. IF (MELVAL.NE.0) THEN
  246. IBMN=MIN(IB ,VELCHE(/2))
  247. IGMN=MIN(IGAU,VELCHE(/1))
  248. EPAIST=VELCHE(IGMN,IBMN)
  249. ELSE
  250. EPAIST=0.D0
  251. ENDIF
  252. ENDIF
  253.  
  254. RETURN
  255. END
  256.  
  257.  
  258.  
  259.  

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