frusbm
C FRUSBM SOURCE CHAT 05/01/13 00:09:18 5004 & GAMG,ROG,PG,UNG,UTG, & GAMD,ROD,PD,UND,UTD, & YG,YD,VINF,FLU, & CELLT) C C PROJET : CASTEM 2000 C C NOM : FRUSBM C C DESCRIPTION : Formulation Volumes Finis pour les Equations C d'Euler Multi-Especes relatives à un melange C de gaz parfaits. C C Calcul du flux aux interfaces avec la methode C de Rusanov preconditionée C C LANGUAGE : FORTRAN 77 C C AUTEUR : A. BECCANTINI SFME/LTMF C C************************************************************************ C C APPELES : FRBM1 C C************************************************************************ C C**** Entrées: C C NESP = nombre d'especes considérées dans les Equations C d'Euler C C GAMG, GAMD = les "gamma" du gaz (gauche et droite) C C ROG, ROD = les densités C C PG, PD = les pressions C C UNG, UND = vitesses normales C C UTG, UTD = vitesses tangentielles C C VINF = vitesse de cut-off C C**** Sorties: C C FLU = table du flux a l'interface dans le repaire C (n,t), i.e. C (rho*un, rho*un*un + p, rho*un*ut, rho*un*ht, C rho*un*y1, ...) C C CELLT = condition de stabilité, i.e. C C dT/diamax < cellt C C************************************************************************ C C HISTORIQUE (Anomalies et modifications éventuelles) C C HISTORIQUE : Créé le 08.02.00 C C 21.02.00 transport de scalaires passifs C C************************************************************************ C C N.B.: Toutes les variables sont DECLAREES C C IMPLICIT INTEGER(I-N) INTEGER NESP,I1 REAL*8 GAMG,ROG,PG,UNG,UTG & ,GAMD,ROD,PD,UND,UTD & ,YG(*),YD(*),VINF & ,FLU(*),CELLT, FLUM & ,UNF,UTF,ROF,PF,GAMF & ,AMAT(4,4) & ,CSON,RETG,RETD,DRO,DRUN,DRUT,DRET,RLAMMA C C**** Etat moyen C C SIGN(4.0D0,-1.0D0)=-4 UNF=0.5D0*(UNG+UND) UTF=0.5D0*(UTG+UTD) ROF=0.5D0*(ROG+ROD) PF=0.5D0*(PG+PD) GAMF=0.5D0*(GAMG+GAMD) C C**** We include in the cut-off UNG,UND,UTG,UTD in order to C avoid low diffusivity in stagnation regions C VINF=MAX(VINF,((UNG*UNG+UTG*UTG)**0.5D0)) VINF=MAX(VINF,((UND*UND+UTD*UTD)**0.5D0)) C C**** Calcule de la matrice de diffusivité pour le variables C conservatives. C NB: F(UL,Ur) = 0.5 (F(UL)+F(UR)+AMAT*RLAMMA*(UL-UR)) C C C**** Vitesse de l'onde la plus rapide à l'interface (la vrai!) C C C**** DELTA C RETG = ((1.0D0 / (GAMG - 1.0D0)) * PG) & + (0.5D0*ROG*((UNG*UNG)+(UTG*UTG))) RETD = ((1.0D0 / (GAMD - 1.0D0)) * PD) & + (0.5D0*ROD*((UND*UND)+(UTD*UTD))) DRO = ROG - ROD DRUN = (ROG * UNG) - (ROD * UND) DRUT = (ROG * UTG) - (ROD * UTD) DRET = RETG - RETD C FLU(1) = 0.5D0 * ((ROG * UNG) + (ROD * UND) + & (((AMAT(1,1) * DRO) + (AMAT(1,2) * DRUN) + (AMAT(1,3) * DRUT) & + (AMAT(1,4) * DRET)) * RLAMMA)) FLU(2) = 0.5D0 * ((ROG * UNG * UNG) + (ROD * UND * UND) + & (PG + PD) + & (((AMAT(2,1) * DRO) + (AMAT(2,2) * DRUN) + (AMAT(2,3) * DRUT) & +(AMAT(2,4) * DRET)) * RLAMMA)) FLU(3) = 0.5D0 * ((ROG * UNG * UTG) + (ROD * UND * UTD) + & (((AMAT(3,1) * DRO) + (AMAT(3,2) * DRUN) + (AMAT(3,3) * DRUT) & +(AMAT(3,4) * DRET))*RLAMMA)) FLU(4) = 0.5D0 * ((UNG * (RETG + PG)) + (UND * (RETD + PD)) + & (((AMAT(4,1) * DRO) + (AMAT(4,2) * DRUN) + (AMAT(4,3) * DRUT) & +(AMAT(4,4) * DRET))*RLAMMA)) C FLUM = FLU(1) IF(FLUM .GT. 0)THEN DO I1 = 1, NESP, 1 FLU(4+I1)=FLUM * YG(I1) ENDDO ELSE DO I1 = 1, NESP, 1 FLU(4+I1)=FLUM * YD(I1) ENDDO ENDIF C RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales