Télécharger wcree0.eso

Retour à la liste

Numérotation des lignes :

wcree0
  1. C WCREE0 SOURCE CB215821 24/04/12 21:17:28 11897
  2.  
  3. SUBROUTINE WCREE0(iqmod, wrk52, wcreep)
  4.  
  5. IMPLICIT INTEGER(I-N)
  6. IMPLICIT REAL*8(A-H,O-Z)
  7. C-----------------------------------------------------------------------
  8.  
  9. C
  10. C DESCRIPTION FONCTIONNELLE :
  11. C -------------------------
  12. C
  13. C Preparation de donnees pour l'integration d'une loi VISCO_EXTERNE
  14. C
  15. C WCREE0 prepare les donnees independantes de l'element et du point
  16. C d'integration ; de ce fait, WCREE0 est appelee par COML6 avant le
  17. C demarrage des boucles imbriquees sur les elements de la sous-zone
  18. C et sur les points de Gauss de l'element.
  19. C
  20. C INTERFACE :
  21. C ---------
  22. C
  23. C IN : iqmod : pointeur actif sur le modele elementaire
  24. C IN : wrk52 : pointeur actif sur le segment de travail WRK52
  25. C de l'objet DECHE
  26. C IN : wcreep : pointeur actif sur le segment de travail
  27. C WCREEP contenant les donnees a preparer
  28. C
  29. C
  30. C Les operations effectuees par WCREE0 consistent a initialiser
  31. C certains elements du segment de travail WCREEP.
  32. C Sont concernees les donnees suivantes :
  33. C
  34. C Entrees/sorties constantes de la routine CREEP :
  35. C ----------------------------------------------
  36. C
  37. C SERD : REAL*8, puissance volumique de deformation
  38. C inelastique (produit contracte du tenseur des
  39. C contraintes et du tenseur des vitesses de
  40. C deformation inelastique)
  41. C Entree/sortie facultative de la routine CREEP,
  42. C non exploitee par CAST3M pour l'instant
  43. C Initialisation arbitraire
  44. C
  45. C CMNAMC : CHARACTER*16, identifiant de la loi de
  46. C comportement
  47. C Entree de la routine CREEP
  48. C
  49. C LEXIMP : INTEGER, indicateur d'integration par un schema
  50. C Entree de la routine CREEP, non active dans le
  51. C cas d'une adherence a CAST3M
  52. C Initialisation arbitraire
  53. C
  54. C NSTTVC : INTEGER, nombre de variables internes
  55. C supplementaires (en plus des 4 pre-definies)
  56. C Entree de la routine CREEP
  57. C
  58. C LAYERC : INTEGER, numero de couche pour des coques
  59. C composites ou des solides multi-couches
  60. C KSPTC : INTEGER, numero de section dans la couche
  61. C courante
  62. C Entrees de la routine CREEP, non actives dans le
  63. C cas d'une adherence a CAST3M
  64. C Initialisation arbitraire
  65. C
  66. C Entrees/sorties de la routine CREEP pouvant varier :
  67. C --------------------------------------------------
  68. C
  69. C TMP12 : REAL*8, temperature a t+tau1/2
  70. C TMP : REAL*8, temperature a t+tau
  71. C TMP32 : REAL*8, temperature a t+tau3/2
  72. C DTMP12 : REAL*8, variation de temperature sur tau1/2
  73. C DTMP : REAL*8, variation de temperature sur tau
  74. C PRD12 : REAL*8(*), parametres externes a t+tau1/2
  75. C PRD : REAL*8(*), parametres externes a t+tau
  76. C PRD32 : REAL*8(*), parametres externes a t+tau3/2
  77. C DPRD12 : REAL*8(*), variations des parametres externes
  78. C sur tau1/2
  79. C DPRD : REAL*8(*), variations des parametres externes
  80. C sur tau
  81. C Entrees de la routine CREEP
  82. C Ces entrees ne sont initialisees par WCREE0 que
  83. C dans le cas ou elles ne sont pas actives, i.e.
  84. C quand aucun champ de temperature ni aucun champ
  85. C de parametre externe n'est fourni en entree a
  86. C l'operateur COMP (cas d'un modele independant
  87. C de la temperature et de tout autre parametre).
  88. C
  89. C KSTEPC : INTEGER
  90. C Entree de la routine CREEP n'ayant pas de sens
  91. C dans le cas d'une adherence a CAST3M
  92. C Initialisation arbitraire
  93. C On autorise la programmation de l'utilisateur a
  94. C se servir de KSTEPC comme code retour de CREEP
  95. C (voir module CREEP exemple integre au code)
  96. C
  97. C Variables de travail :
  98. C --------------------
  99. C
  100. C LTMP : LOGICAL, indicateur de fourniture de
  101. C la temperature
  102. C LTMP=.TRUE. : les variables TMP* et DTMP* sont
  103. C mises a jour au cours du processus d'integration
  104. C LTMP=.FALSE. : les variables TMP* et DTMP* sont
  105. C initialisees une fois pour toutes par WCREE0
  106. C
  107. C LPRD : LOGICAL, indicateur d'existence de parametres
  108. C externes du modele
  109. C LPRD=.TRUE. : les variables PRD* et DPRD* sont
  110. C mises a jour au cours du processus d'integration
  111. C LPRD=.FALSE. : les variables PRD* et DPRD* sont
  112. C initialisees une fois pour toutes par WCREE0
  113. C
  114. C LSTV : LOGICAL, indicateur d'existence de variables
  115. C internes supplementaires (i.e. en plus des 4
  116. C pre-definies)
  117. C LSTV=.TRUE. : les vecteurs de travail STV* du
  118. C segment WCREEP sont mis a jour au cours du
  119. C processus d'integration
  120. C LSTV=.FALSE. : les vecteurs de travail STV* du
  121. C segment WCREEP sont initialises une fois pour
  122. C toutes par WCREE0
  123. C
  124. C IVIEX : INTEGER, indicateur de materiau 'VISCO_EXTERNE'
  125. C 1 : 'GENERAL'
  126. C 2 : 'DRUCKER_PRAGER'
  127. C 3 : 'COHESION'
  128. C 4 : 'CONSOLIDATION'
  129. C 5 : 'UTILISATEUR'
  130. C On a besoin d'un second indicateur pour les lois
  131. C 'VISCO_EXTERNE' car INPLAS=-100-ILOI ou ILOI est
  132. C le numero attribue par l'utilisateur
  133. C INPLAS permet de ditinguer les lois entre elles
  134. C IVIEX permet de "typer" une loi
  135. C
  136. C NPAREC : INTEGER, nombre de parametres externes de la loi
  137. C de comportement
  138. C Stockage dans une variable de travail afin de ne
  139. C pas "mesurer" un vecteur a chaque mise a jour au
  140. C cours du processus d'integration
  141. C N'est utile que dans le cas ou le modele depend
  142. C effectivement de parametres externes
  143. C
  144. C dTMPdt : REAL*8, derivee de la temperature par rapport au
  145. C temps, constante sur le pas de temps
  146. C dPRDdt : REAL*8(*), derivees des parametres externes par
  147. C rapport au temps, constantes sur le pas de temps
  148. C Ces variables ne servent que dans les cas ou
  149. C LTMP=.TRUE. et LPRD=.TRUE. respectivement
  150. C La temperature et les parametres extenes sont
  151. C supposes varier lineairement sur le pas de temps
  152. C
  153. C-----------------------------------------------------------------------
  154. -INC PPARAM
  155. -INC SMMODEL
  156. -INC DECHE
  157. C
  158. SEGMENT WCREEP
  159. C Entrees/sorties constantes de la routine CREEP
  160. REAL*8 SERD
  161. CHARACTER*16 CMNAMC
  162. INTEGER LEXIMP, NSTTVC, LAYERC, KSPTC
  163. C Entrees/sorties de la routine CREEP pouvant varier
  164. REAL*8 STV(NSTV), STV1(NSTV), STVP1(NSTV),
  165. & STVP2(NSTV), STV12(NSTV), STVP3(NSTV),
  166. & STVP4(NSTV), STV13(NSTV), STVF(NSTV),
  167. & TMP12, TMP, TMP32,
  168. & DTMP12, DTMP,
  169. & PRD12(NPRD), PRD(NPRD), PRD32(NPRD),
  170. & DPRD12(NPRD), DPRD(NPRD)
  171. INTEGER KSTEPC
  172. C Autres indicateurs et variables de travail
  173. LOGICAL LTMP, LPRD, LSTV
  174. INTEGER IVIEX, NPAREC
  175. REAL*8 dTMPdt, dPRDdt(NPRD)
  176. ENDSEGMENT
  177. C
  178. C Arguments de l'interface
  179. C
  180. C Pointeurs iqmod, wrk52, wcreep
  181. C
  182. C Variables locales
  183. C
  184. CHARACTER*16 MOMODL(200)
  185. C
  186. C---------------------- Debut du code executable -----------------------
  187. C
  188. IMODEL = iqmod
  189. C
  190. C 1 - Entrees/sorties non actives/non exploitees de la routine CREEP
  191. C Initialisations arbitraires
  192. C
  193. SERD = 0.0D0
  194. C
  195. LEXIMP = 0
  196. LAYERC = 0
  197. KSPTC = 0
  198. C
  199. C 2 - Initialisation de KSTEPC qui pourra servir de code retour
  200. C
  201. KSTEPC = 1
  202. C
  203. C 3 - Numero de loi externe encode dans une chaine de 16 caracteres
  204. C Typage de la loi 'VISCO_EXTERNE'
  205. C
  206. NMAMOD = MATMOD(/2)
  207. CMNAMC = MATMOD(NMAMOD)
  208. C
  209. nparmo = 0
  210. NOBMOD = TYMODE(/2)
  211. CALL PLACE(TYMODE,NOBMOD,nparmo,'IVIEX ')
  212. IF (nparmo.EQ.0) CALL ERREUR(5)
  213. IVIEX = IVAMOD(nparmo)
  214. C
  215. C 4 - Nombre de variables internes supplementaires
  216. C
  217. NSTTVC = VAR0(/1)-4
  218. LSTV = (NSTTVC.GT.0)
  219. C
  220. C 5 - Existence d'un chargement en temperature
  221. C Existence de parametres externes autres que la temperature
  222. C
  223. NTURE0=TURE0(/1)
  224. IF ( NTURE0.GT.0 ) THEN
  225. LTMP = .TRUE.
  226. ELSE
  227. LTMP = .FALSE.
  228. TMP12 = 0.0D0
  229. TMP = 0.0D0
  230. TMP32 = 0.0D0
  231. DTMP12 = 0.0D0
  232. DTMP = 0.0D0
  233. dTMPdt = 0.0D0
  234. ENDIF
  235. C
  236. NPAREC=PAREX0(/1)
  237. nomid =LNOMID(14)
  238. IF (nomid.NE.0) THEN
  239. nparmo=lesobl(/2)
  240. C Normalement pas possible (Voir comou2)
  241. IF (nparmo.EQ. 1 .AND. lesobl(1).EQ.'T ') nparmo = 0
  242. ELSE
  243. nparmo = 0
  244. ENDIF
  245.  
  246. IF (nparmo.GT.0) THEN
  247. LPRD=.TRUE.
  248. ELSE
  249. LPRD=.FALSE.
  250. PRD12(1) = 0.0D0
  251. PRD(1) = 0.0D0
  252. PRD32(1) = 0.0D0
  253. DPRD12(1) = 0.0D0
  254. DPRD(1) = 0.0D0
  255. dPRDdt(1) = 0.0D0
  256. ENDIF
  257. END
  258.  
  259.  
  260.  
  261.  

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