1 : C YLAP1T SOURCE MAGN 09/07/30 21:22:24 6458 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 : -INC CCOPTIO 78 : -INC SMCOORD 79 : -INC SMCHPOI 80 : POINTEUR IROC.MCHPOI ,IVITC.MCHPOI ,ITEMC.MCHPOI 81 : POINTEUR IGRVF.MCHPOI 82 : POINTEUR IVIMP.MCHPOI ,ITOIM.MCHPOI 83 : POINTEUR ITIMP.MCHPOI ,IQIMP.MCHPOI,IMIXT.MCHPOI 84 : POINTEUR ISURF.MCHPOI ,INORM.MCHPOI ,IVOLU.MCHPOI 85 : POINTEUR MPROC.MPOVAL ,MPVITC.MPOVAL,MPTEMC.MPOVAL 86 : POINTEUR MPGRVF.MPOVAL 87 : POINTEUR MPVIMP.MPOVAL,MPTOIM.MPOVAL 88 : POINTEUR MPTIMP.MPOVAL,MPQIMP.MPOVAL,MPMIXT.MPOVAL 89 : POINTEUR MPSURF.MPOVAL,MPNORM.MPOVAL,MPVOLU.MPOVAL 90 : -INC SMCHAML 91 : POINTEUR ICOGRV.MCHELM,ICOGRT.MCHELM 92 : -INC SMELEME 93 : POINTEUR MELEMC.MELEME,MELEMF.MELEME,MELEFL.MELEME 94 : POINTEUR MELBID.MELEME 95 : POINTEUR MLVIMP.MELEME,MLTOIM.MELEME 96 : POINTEUR MLTIMP.MELEME,MLQIMP.MELEME,MLMIXT.MELEME 97 : -INC SMLENTI 98 : POINTEUR KRVIMP.MLENTI,KRTOIM.MLENTI 99 : POINTEUR KRTIMP.MLENTI,KRQIMP.MLENTI,KRMIXT.MLENTI 100 : POINTEUR KRCENT.MLENTI,KRFACE.MLENTI 101 : -INC SMMATRIK 102 : POINTEUR IJACO.MATRIK 103 : * 104 : REAL*8 MU,KAPPA,CV 105 : * 106 : INTEGER IMPR,IRET,ICLAU 107 : * 108 : LOGICAL LCLIMV,LCLITO 109 : LOGICAL LCLIMT,LCLIMQ,LMIXT 110 : * 111 : INTEGER NTOTPO 112 : C 113 : * 114 : * Executable statements 115 : * 116 : IMPR=0 117 : IF (IMPR.GT.2) WRITE(IOIMP,*) 'Entrée dans ylap1a.eso' 118 : * Initialisation de la matrice jacobienne à zéro 118 : CALL ZERMAK(IJACO,IMPR,IRET) 119 : IF (IRET.NE.0) GOTO 9999 120 : * Lecture des données et initialisations de tableaux de travail 120 : CALL LICHT2(ITEMC,MPTEMC,MELBID,IMPR,IRET) 121 : IF (IRET.NE.0) GOTO 9999 121 : CALL LICHT2(ISURF,MPSURF,MELBID,IMPR,IRET) 122 : IF (IRET.NE.0) GOTO 9999 122 : CALL LICHT2(INORM,MPNORM,MELBID,IMPR,IRET) 123 : IF (IRET.NE.0) GOTO 9999 123 : CALL LICHT2(IVOLU,MPVOLU,MELBID,IMPR,IRET) 124 : IF (IRET.NE.0) GOTO 9999 125 : LCLIMT=(ITIMP.NE.0) 126 : LCLIMQ=(IQIMP.NE.0) 127 : LMIXT=(IMIXT.NE.0) 128 : NTOTPO=MCOORD.XCOOR(/1)/(IDIM+1) 129 : IF (LCLIMT) THEN 129 : CALL LICHT2(ITIMP,MPTIMP,MLTIMP,IMPR,IRET) 130 : IF (IRET.NE.0) GOTO 9999 131 : * In KRIPME : SEGINI KRTIMP 131 : CALL KRIPME(MLTIMP,NTOTPO,KRTIMP,IMPR,IRET) 132 : IF (IRET.NE.0) GOTO 9999 133 : ENDIF 134 : IF (LCLIMQ) THEN 134 : CALL LICHT2(IQIMP,MPQIMP,MLQIMP,IMPR,IRET) 135 : IF (IRET.NE.0) GOTO 9999 136 : * In KRIPME : SEGINI KRQIMP 136 : CALL KRIPME(MLQIMP,NTOTPO,KRQIMP,IMPR,IRET) 137 : IF (IRET.NE.0) GOTO 9999 138 : ENDIF 139 : c ON EST ICI 140 : IF (LMIXT) THEN 140 : CALL LICHT2(IMIXT,MPMIXT,MLMIXT,IMPR,IRET) 141 : IF (IRET.NE.0) GOTO 9999 142 : * In KRIPME : SEGINI KRMIXT 142 : CALL KRIPME(MLMIXT,NTOTPO,KRMIXT,IMPR,IRET) 143 : IF (IRET.NE.0) GOTO 9999 144 : ENDIF 145 : * Repérage dans les faces, les centres 146 : * In KRIPME : SEGINI KRFACE 146 : CALL KRIPME(MELEMF,NTOTPO,KRFACE,IMPR,IRET) 147 : IF (IRET.NE.0) GOTO 9999 148 : * In KRIPME : SEGINI KRCENT 148 : CALL KRIPME(MELEMC,NTOTPO,KRCENT,IMPR,IRET) 149 : IF (IRET.NE.0) GOTO 9999 150 : * 151 : * Calcul des contributions à la matrice jacobienne faisant intervenir 152 : * les coefficients pour le calcul des gradients de température (ICOGRT) 153 : * (contributions à d Res_{\rho e_t} / d var 154 : * var prenant successivement les valeurs : 155 : * \rho, \rho u, \rho v, \rho e_t ) 156 : * 156 : CALL YLA1BT(ICOGRT,MPTEMC, 157 : $ MPVOLU,MPNORM,MPSURF,MELEFL, 158 : $ KRFACE,KRCENT,LCLIMT,KRTIMP,LCLIMQ,KRQIMP, 159 : $ LMIXT,KRMIXT, 160 : $ IJACO, 161 : $ IMPR,IRET) 162 : IF (IRET.NE.0) GOTO 9999 163 : * 164 : * Destruction des tableaux de travail 165 : * 166 : SEGSUP KRCENT 167 : SEGSUP KRFACE 168 : IF (LCLIMQ) THEN 169 : SEGSUP KRQIMP 170 : ENDIF 171 : IF (LCLIMT) THEN 172 : SEGSUP KRTIMP 173 : ENDIF 174 : IF (LMIXT) THEN 175 : SEGSUP KRMIXT 176 : ENDIF 177 : * 178 : * Normal termination 179 : * 180 : IRET=0 181 : RETURN 182 : * 183 : * Format handling 184 : * 185 : * 186 : * Error handling 187 : * 188 : 9999 CONTINUE 189 : IRET=1 190 : WRITE(IOIMP,*) 'An error was detected in subroutine ylap1t' 190 : CALL ERREUR(5) 191 : RETURN 192 : * 193 : * End of subroutine YLAP1T 194 : * 195 : END 196 : 197 : 198 : 199 : 200 : 201 : 202 : 203 : 204 :
© Cast3M 2003 - All rights reserved.
Disclaimer