Télécharger frbm1.eso

Retour à la liste

Numérotation des lignes :

frbm1
  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.  
  146.  

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