Télécharger defval.eso

Retour à la liste

Numérotation des lignes :

defval
  1. C DEFVAL SOURCE OF166741 25/02/21 21:15:53 12166
  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 1007 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. *
  138. ELSE
  139. MPTVAL=ICAR
  140. DO 1010 ICOMP=1,NUCAR
  141. r_z = 0.D0
  142. MELVAL=IVAL(ICOMP)
  143. IF (MELVAL.NE.0) THEN
  144. IBMN=MIN(IB ,VELCHE(/2))
  145. DO IAUX1=1,NBPTEL
  146. IGMN=MIN(IAUX1,VELCHE(/1))
  147. r_z = r_z + VELCHE(IGMN,IBMN)
  148. ENDDO
  149. r_z = r_z / NBPTEL
  150. ENDIF
  151. VALCAR(ICOMP) = r_z
  152. 1010 CONTINUE
  153. ENDIF
  154. ENDIF
  155. *
  156. * on recupere les contraintes initiales
  157. *
  158. MPTVAL=IVASTR
  159. DO 1101 IC=1,NSTRS
  160. MELVAL=IVAL(IC)
  161. IBMN=MIN(IB,VELCHE(/2))
  162. IGMN=MIN(IGAU,VELCHE(/1))
  163. SIG0(IC)=VELCHE(IGMN,IBMN)
  164. 1101 continue
  165. *
  166. * on recupere les variables internes
  167. *
  168. MPTVAL=IVARI
  169. DO IC=1,NVARI
  170. MELVAL=IVAL(IC)
  171. IF(IELCHE(/1)+IELCHE(/2).NE.0) THEN
  172. IBMN=MIN(IB,IELCHE(/2))
  173. IGMN=MIN(IGAU,IELCHE(/1))
  174. VAR0(IC)=DBLE(IELCHE(IGMN,IBMN))
  175. ELSE IF(VELCHE(/1)+VELCHE(/2).NE.0) THEN
  176. IBMN=MIN(IB,VELCHE(/2))
  177. IGMN=MIN(IGAU,VELCHE(/1))
  178. VAR0(IC)=VELCHE(IGMN,IBMN)
  179. ENDIF
  180. END DO
  181. *
  182. * on recupere les deformations inelastiques initiales si besoin
  183. *
  184. IF(IND.EQ.1.OR.INPLAS.EQ.31.OR.INPLAS.EQ.30
  185. . .OR.INPLAS.EQ.34.OR.INPLAS.EQ.37
  186. . .OR.INPLAS.EQ.47.OR.INPLAS.EQ.66
  187. . .OR.INPLAS.EQ.75.OR.INPLAS.EQ.118
  188. . .OR.INPLAS.EQ.141) THEN
  189. MPTVAL=IVADEF
  190. DO 1103 IC=1,NDEF
  191. MELVAL=IVAL(IC)
  192. IBMN=MIN(IB,VELCHE(/2))
  193. IGMN=MIN(IGAU,VELCHE(/1))
  194. EPIN0(IC)=VELCHE(IGMN,IBMN)
  195. 1103 continue
  196. ENDIF
  197. *
  198. * on recupere les deformations totales si besoin
  199. *
  200. IF(MFR.EQ.33) THEN
  201. MPTVAL=IVADET
  202. DO 1104 IC=1,NDEF
  203. MELVAL=IVAL(IC)
  204. IBMN=MIN(IB,VELCHE(/2))
  205. IGMN=MIN(IGAU,VELCHE(/1))
  206. EPST0(IC)=VELCHE(IGMN,IBMN)
  207. 1104 continue
  208. ENDIF
  209. *
  210. * on recupere les increments de deformations totales
  211. *
  212. MPTVAL=IVADS
  213. DO 1105 IC=1,NSTRS
  214. MELVAL=IVAL(IC)
  215. IBMN=MIN(IB,VELCHE(/2))
  216. IGMN=MIN(IGAU,VELCHE(/1))
  217. DEPST(IC)=VELCHE(IGMN,IBMN)
  218. 1105 continue
  219. *
  220. IF(MFR.EQ.27.OR.MFR.EQ.49) THEN
  221. *
  222. * on cherche la section de l'element ib
  223. *
  224. MPTVAL=ICAR
  225. MELVAL=IVAL(1)
  226. IF (MELVAL.NE.0) THEN
  227. IBMN=MIN(IB ,VELCHE(/2))
  228. IGMN=MIN(IGAU,VELCHE(/1))
  229. SECT=VELCHE(IGMN,IBMN)
  230. ELSE
  231. SECT=0.D0
  232. ENDIF
  233. ENDIF
  234. *
  235. * prise en compte de l'epaisseur et de l'excentrement
  236. * dans le cas des coques minces avec ou sans cisaillement
  237. * transverse
  238. *
  239. IF ((CMATE.EQ.'ISOTROPE'.OR.CMATE.EQ.'ORTHOTRO'.
  240. 1 OR.CMATE.EQ.'UNIDIREC').AND.
  241. 2 (MFR.EQ.3.OR.MFR.EQ.9)) THEN
  242. MPTVAL=ICAR
  243. MELVAL=IVAL(1)
  244. IF (MELVAL.NE.0) THEN
  245. IBMN=MIN(IB ,VELCHE(/2))
  246. IGMN=MIN(IGAU,VELCHE(/1))
  247. EPAIST=VELCHE(IGMN,IBMN)
  248. ELSE
  249. EPAIST=0.D0
  250. ENDIF
  251. ENDIF
  252.  
  253. RETURN
  254. END
  255.  
  256.  
  257.  

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