Télécharger ylap1t.eso

Retour à la liste

Numérotation des lignes :

ylap1t
  1. C YLAP1T SOURCE CB215821 20/11/25 13:44:11 10792
  2. C YLAP1A SOURCE LEPOTIER 02/12/17 21:18:56 4510
  3. SUBROUTINE YLAP1T(ITEMC,ICOGRT,ITIMP,IQIMP,IMIXT,
  4. $ MELEMC,MELEMF,MELEFL,ISURF,INORM,IVOLU,
  5. $ IJACO)
  6. C***********************************************************************
  7. C NOM : YLAP1A
  8. C DESCRIPTION : Calcul de la matrice jacobienne du résidu du laplacien
  9. C VF 2D.
  10. C
  11. C LANGAGE : ESOPE
  12. C AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  13. C mél : gounand@semt2.smts.cea.fr
  14. C***********************************************************************
  15. C APPELES : YLA1BT |
  16. C YLAP1C | Calcul des contributions à la matrice
  17. C YLAP1D | jacobienne du résidu du laplacien VF 2D.
  18. C YLAP1E |
  19. C APPELES (UTIL) : LICHT2 : Lecture des pointeurs (maillages, valeurs)
  20. C d'un objet de type MCHPOI.
  21. C KRIPME : Création d'un tableau de repérage dans un
  22. C maillage de points.
  23. C ZERMAK : Création d'un objet de type MATRIK vide.
  24. C APPELES (STD) : ERREUR : Gestion des erreurs par GIBI.
  25. C APPELE PAR : YLAP11 : Chapeau de l'opérateur Gibiane 'LAPN'
  26. C option 'VF'.
  27. C***********************************************************************
  28. C ENTREES : MU (type réel) : viscosité dynamique (SI).
  29. C KAPPA (type réel) : conductivité thermique (SI)
  30. C CV (type réel) : chaleur spécifique à volume
  31. C constant (SI).
  32. C IROC (type MCHPOI) : masse volumique par élément.
  33. C IVITC (type MCHPOI) : vitesse par élément.
  34. C ITEMC (type MCHPOI) : température par élément.
  35. C IGRVF (type MCHPOI) : gradient de la vitesse
  36. C aux interfaces.
  37. C ICOGRV (type MCHELM) : coefficients pour le
  38. C calcul du gradient de la vitesse aux
  39. C interfaces.
  40. C ICOGRT (type MCHELM) : coefficients pour le
  41. C calcul du gradient de la température aux
  42. C interfaces.
  43. C IVIMP (type MCHPOI) : CL de Dirichlet sur la
  44. C vitesse.
  45. C ITOIM (type MCHPOI) : CL de Dirichlet sur le
  46. C tenseur des contraintes.
  47. C ITIMP (type MCHPOI) : CL de Dirichlet sur la
  48. C température.
  49. C IQIMP (type MCHPOI) : CL de Dirichlet sur le
  50. C flux de chaleur.
  51. C IMIXT (type MCHPOI) : CL mixtes
  52. C ICLAU : option pour ne calculer
  53. c que la thermique
  54. C MELEMC (type MELEME) : maillage des centres des
  55. C éléments.
  56. C MELEMF (type MELEME) : maillage des faces des
  57. C éléments.
  58. C MELEFL (type MELEME) : connectivités face-(centre
  59. C gauche, centre droit).
  60. C ISURF (type MCHPOI) : surface des faces.
  61. C INORM (type MCHPOI) : normale aux faces.
  62. C IVOLU (type MCHPOI) : volume des éléments.
  63. C ENTREES/SORTIES : IJACO (type MATRIK) : matrice jacobienne du
  64. C résidu du laplacien VF 2D.
  65. C SORTIES : -
  66. C***********************************************************************
  67. C VERSION : v1, 01/08/2001, version initiale
  68. C HISTORIQUE : v1, 01/08/2001, création
  69. C HISTORIQUE : v2, 11/02/2003 Ajout de l'OPTION 'MIXT' pour la température
  70. C HISTORIQUE :
  71. C***********************************************************************
  72. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  73. C en cas de modification de ce sous-programme afin de faciliter
  74. C la maintenance !
  75. C***********************************************************************
  76. IMPLICIT INTEGER(I-N)
  77.  
  78. -INC PPARAM
  79. -INC CCOPTIO
  80. -INC SMCOORD
  81. -INC SMCHPOI
  82. POINTEUR IROC.MCHPOI ,IVITC.MCHPOI ,ITEMC.MCHPOI
  83. POINTEUR IGRVF.MCHPOI
  84. POINTEUR IVIMP.MCHPOI ,ITOIM.MCHPOI
  85. POINTEUR ITIMP.MCHPOI ,IQIMP.MCHPOI,IMIXT.MCHPOI
  86. POINTEUR ISURF.MCHPOI ,INORM.MCHPOI ,IVOLU.MCHPOI
  87. POINTEUR MPROC.MPOVAL ,MPVITC.MPOVAL,MPTEMC.MPOVAL
  88. POINTEUR MPGRVF.MPOVAL
  89. POINTEUR MPVIMP.MPOVAL,MPTOIM.MPOVAL
  90. POINTEUR MPTIMP.MPOVAL,MPQIMP.MPOVAL,MPMIXT.MPOVAL
  91. POINTEUR MPSURF.MPOVAL,MPNORM.MPOVAL,MPVOLU.MPOVAL
  92. -INC SMCHAML
  93. POINTEUR ICOGRV.MCHELM,ICOGRT.MCHELM
  94. -INC SMELEME
  95. POINTEUR MELEMC.MELEME,MELEMF.MELEME,MELEFL.MELEME
  96. POINTEUR MELBID.MELEME
  97. POINTEUR MLVIMP.MELEME,MLTOIM.MELEME
  98. POINTEUR MLTIMP.MELEME,MLQIMP.MELEME,MLMIXT.MELEME
  99. -INC SMLENTI
  100. POINTEUR KRVIMP.MLENTI,KRTOIM.MLENTI
  101. POINTEUR KRTIMP.MLENTI,KRQIMP.MLENTI,KRMIXT.MLENTI
  102. POINTEUR KRCENT.MLENTI,KRFACE.MLENTI
  103. POINTEUR IJACO.MATRIK
  104. *
  105. REAL*8 MU,KAPPA,CV
  106. *
  107. INTEGER IMPR,IRET,ICLAU
  108. *
  109. LOGICAL LCLIMV,LCLITO
  110. LOGICAL LCLIMT,LCLIMQ,LMIXT
  111. *
  112. INTEGER NTOTPO
  113. C
  114. *
  115. * Executable statements
  116. *
  117. IMPR=0
  118. IF (IMPR.GT.2) WRITE(IOIMP,*) 'Entrée dans ylap1a.eso'
  119. * Initialisation de la matrice jacobienne à zéro
  120. CALL ZERMAK(IJACO,IMPR,IRET)
  121. IF (IRET.NE.0) GOTO 9999
  122. * Lecture des données et initialisations de tableaux de travail
  123. CALL LICHT2(ITEMC,MPTEMC,MELBID,IMPR,IRET)
  124. IF (IRET.NE.0) GOTO 9999
  125. CALL LICHT2(ISURF,MPSURF,MELBID,IMPR,IRET)
  126. IF (IRET.NE.0) GOTO 9999
  127. CALL LICHT2(INORM,MPNORM,MELBID,IMPR,IRET)
  128. IF (IRET.NE.0) GOTO 9999
  129. CALL LICHT2(IVOLU,MPVOLU,MELBID,IMPR,IRET)
  130. IF (IRET.NE.0) GOTO 9999
  131. LCLIMT=(ITIMP.NE.0)
  132. LCLIMQ=(IQIMP.NE.0)
  133. LMIXT=(IMIXT.NE.0)
  134. NTOTPO=nbpts
  135. IF (LCLIMT) THEN
  136. CALL LICHT2(ITIMP,MPTIMP,MLTIMP,IMPR,IRET)
  137. IF (IRET.NE.0) GOTO 9999
  138. * In KRIPME : SEGINI KRTIMP
  139. CALL KRIPME(MLTIMP,NTOTPO,KRTIMP,IMPR,IRET)
  140. IF (IRET.NE.0) GOTO 9999
  141. ENDIF
  142. IF (LCLIMQ) THEN
  143. CALL LICHT2(IQIMP,MPQIMP,MLQIMP,IMPR,IRET)
  144. IF (IRET.NE.0) GOTO 9999
  145. * In KRIPME : SEGINI KRQIMP
  146. CALL KRIPME(MLQIMP,NTOTPO,KRQIMP,IMPR,IRET)
  147. IF (IRET.NE.0) GOTO 9999
  148. ENDIF
  149. c ON EST ICI
  150. IF (LMIXT) THEN
  151. CALL LICHT2(IMIXT,MPMIXT,MLMIXT,IMPR,IRET)
  152. IF (IRET.NE.0) GOTO 9999
  153. * In KRIPME : SEGINI KRMIXT
  154. CALL KRIPME(MLMIXT,NTOTPO,KRMIXT,IMPR,IRET)
  155. IF (IRET.NE.0) GOTO 9999
  156. ENDIF
  157. * Repérage dans les faces, les centres
  158. * In KRIPME : SEGINI KRFACE
  159. CALL KRIPME(MELEMF,NTOTPO,KRFACE,IMPR,IRET)
  160. IF (IRET.NE.0) GOTO 9999
  161. * In KRIPME : SEGINI KRCENT
  162. CALL KRIPME(MELEMC,NTOTPO,KRCENT,IMPR,IRET)
  163. IF (IRET.NE.0) GOTO 9999
  164. *
  165. * Calcul des contributions à la matrice jacobienne faisant intervenir
  166. * les coefficients pour le calcul des gradients de température (ICOGRT)
  167. * (contributions à d Res_{\rho e_t} / d var
  168. * var prenant successivement les valeurs :
  169. * \rho, \rho u, \rho v, \rho e_t )
  170. *
  171. CALL YLA1BT(ICOGRT,MPTEMC,
  172. $ MPVOLU,MPNORM,MPSURF,MELEFL,
  173. $ KRFACE,KRCENT,LCLIMT,KRTIMP,LCLIMQ,KRQIMP,
  174. $ LMIXT,KRMIXT,
  175. $ IJACO,
  176. $ IMPR,IRET)
  177. IF (IRET.NE.0) GOTO 9999
  178. *
  179. * Destruction des tableaux de travail
  180. *
  181. SEGSUP KRCENT
  182. SEGSUP KRFACE
  183. IF (LCLIMQ) THEN
  184. SEGSUP KRQIMP
  185. ENDIF
  186. IF (LCLIMT) THEN
  187. SEGSUP KRTIMP
  188. ENDIF
  189. IF (LMIXT) THEN
  190. SEGSUP KRMIXT
  191. ENDIF
  192. *
  193. * Normal termination
  194. *
  195. IRET=0
  196. RETURN
  197. *
  198. * Format handling
  199. *
  200. *
  201. * Error handling
  202. *
  203. 9999 CONTINUE
  204. IRET=1
  205. WRITE(IOIMP,*) 'An error was detected in subroutine ylap1t'
  206. CALL ERREUR(5)
  207. RETURN
  208. *
  209. * End of subroutine YLAP1T
  210. *
  211. END
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  

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