Download frbm1.eso

Back to the list

   1 : C FRBM1     SOURCE    CHAT      05/01/13    00:08:12     5004           
   2 :       SUBROUTINE FRBM1(VCO,RO,UN,UT,P,GAM,AMAT,RLAMBD)
   3 : C
   4 : C PROJET            :  CASTEM 2000
   5 : C
   6 : C NOM               :  FRBM1
   7 : C
   8 : C DESCRIPTION       :  Formulation Volumes Finis  pour les Equations 
   9 : C                      d'Euler Monoespece relatives à un 
  10 : C                      gaz parfait.
  11 : C
  12 : C                      Calcul des valeurs propres de la matrice de 
  13 : C                      precondit. de Turkel et de sa matrice inverse
  14 : C
  15 : C LANGUAGE          :  FORTRAN 77 
  16 : C      
  17 : C AUTEUR            :  A. BECCANTINI SFME/LTMF
  18 : C
  19 : C************************************************************************
  20 : C
  21 : C APPELES           :  Subroutine appellée par FRUSBM, KONJR1
  22 : C
  23 : C************************************************************************
  24 : C
  25 : C**** Entrées:
  26 : C
  27 : C     GAM             =  "gamma" du gaz (gauche et droite)
  28 : C
  29 : C     RO              =  densités 
  30 : C
  31 : C     P               =  pression
  32 : C
  33 : C     UN              =  vitesses normales
  34 : C
  35 : C     UT              =  vitesses tangentielles
  36 : C
  37 : C     VCO             =  vitesse de cut-off
  38 : C
  39 : C**** Sorties:
  40 : C
  41 : C     AMAT            = inverse de la matrice de prec de Turkel
  42 : C
  43 : C     RLAMBD          = Valeurs propres de la matrice de precond.
  44 : C      
  45 : C************************************************************************
  46 : C
  47 : C HISTORIQUE (Anomalies et modifications éventuelles)
  48 : C
  49 : C HISTORIQUE :  Créé le 02.05.03
  50 : C
  51 : C************************************************************************
  52 : C
  53 : C N.B.: Toutes les variables sont DECLAREES
  54 : C                          
  55 : C
  56 :       IMPLICIT INTEGER(I-N)
  57 :       REAL*8  GAM,RO,P,UN,UT,VCO,AMAT(4,4),RLAMBD
  58 :      &     ,GAM1,CSON2,Q2,H,M2,COEF,BET2
  59 : C      
  60 : c
  61 : c
  62 :       GAM1=GAM-1.0D0
  63 :       CSON2=GAM*P/RO
  64 :       Q2=(UN*UN+UT*UT)
  65 :       H=(0.5D0*Q2)+(CSON2/GAM1)
  66 :       M2=Q2/CSON2
  67 : C
  68 :       COEF=(VCO*VCO)/CSON2
  69 :       IF(COEF.GT. 1.0D0) COEF=1.0D0
  70 :       IF(M2 .GE. 1)THEN
  71 :          BET2=1.0D0
  72 :       ELSEIF(M2 .LE. COEF)THEN
  73 :          BET2=COEF
  74 :       ELSE
  75 :          BET2=M2
  76 :       ENDIF
  77 : 
  78 :       COEF=(1.0D0/BET2 - 1.0D0)*GAM1/CSON2
  79 : C
  80 :       AMAT(1,1)=1.0D0+(0.5D0*COEF*Q2)
  81 :       AMAT(1,2)=-1.0D0*COEF*UN
  82 :       AMAT(1,3)=-1.0D0*COEF*UT
  83 :       AMAT(1,4)=COEF
  84 : C
  85 :       AMAT(2,1)=0.5D0*COEF*Q2*UN
  86 :         AMAT(2,2)=1.0D0-(COEF*UN**2)
  87 :         AMAT(2,3)=-1.0D0*COEF*UN*UT
  88 :       AMAT(2,4)=COEF*UN
  89 : C
  90 :       AMAT(3,1)=0.5D0*COEF*Q2*UT
  91 :       AMAT(3,2)=-COEF*UN*UT
  92 :       AMAT(3,3)=1.0D0-COEF*UT**2
  93 :       AMAT(3,4)=COEF*UT
  94 : C
  95 :       AMAT(4,1)=0.5D0*COEF*Q2*H
  96 :       AMAT(4,2)=-1.0D0*COEF*UN*H
  97 :       AMAT(4,3)=-1.0D0*COEF*UT*H
  98 :       AMAT(4,4)=1.0D0+COEF*H
  99 : C
 100 :       RLAMBD=((1 - BET2)*UN)**2
 101 :       RLAMBD=RLAMBD + (4*BET2*CSON2)
 102 :       RLAMBD=RLAMBD**0.5D0
 103 :       RLAMBD=RLAMBD+((1.0D0+BET2)*ABS(UN))
 104 :       RLAMBD=0.5D0*RLAMBD
 105 : C
 106 : C**** Test: const coeff. (for tensorial reaons
 107 : C     the sign must be keep as in the former case)
 108 : C     SIGN(A,B) = A * SIGN(B) 
 109 : C
 110 : C      AMAT(1,1)=SIGN(11.7D0,AMAT(1,1))
 111 : C      AMAT(2,1)=SIGN(1.7D1,AMAT(2,1))
 112 : C      AMAT(3,1)=SIGN(2.7D0,AMAT(3,1))
 113 : C      AMAT(4,1)=SIGN(3.7D0,AMAT(4,1))
 114 : CC
 115 : C      AMAT(1,2)=SIGN(11.17D0,AMAT(1,2))
 116 : C      AMAT(2,2)=SIGN(2.17D0,AMAT(2,2))
 117 : C      AMAT(3,2)=SIGN(101.7D0,AMAT(3,2))
 118 : C      AMAT(4,2)=SIGN(11.97D0,AMAT(4,2))
 119 : CC
 120 : C      AMAT(1,3)=SIGN(1.79D0,AMAT(1,3))
 121 : C      AMAT(2,3)=SIGN(2.79D0,AMAT(2,3))
 122 : C      AMAT(3,3)=SIGN(3.79D0,AMAT(3,3))
 123 : C      AMAT(4,3)=SIGN(4.87D0,AMAT(4,3))
 124 : CC
 125 : C      AMAT(1,4)=SIGN(91.7D0,AMAT(1,4))
 126 : C      AMAT(2,4)=SIGN(71.7D0,AMAT(2,4))
 127 : C      AMAT(3,4)=SIGN(81.7D0,AMAT(3,4))
 128 : C      AMAT(4,4)=SIGN(51.7D0,AMAT(4,4))
 129 : CC
 130 : C      RLAMBD=SIGN(1.171D0,RLAMBD)
 131 : C
 132 : C**** Fin test
 133 : C
 134 :       RETURN
 135 :       END
 136 : 
 137 : 
 138 :  
 139 :  
 140 :  
 141 :  
 142 :  
 143 :  
 144 :  
 145 :  

© Cast3M 2003 - All rights reserved.
Disclaimer