Télécharger cormasse.procedur

Retour à la liste

Numérotation des lignes :

  1. * CORMASSE PROCEDUR SERRE 21/06/28 21:15:02 11045
  2. 'DEBP' CORMASSE
  3. *
  4. * E/ $vtf : MMODEL : NAVIER_STOKES
  5. * E/ RHOi : CHPOINT : Densité à contraindre
  6. * E/ Mi0D : FLOTTANT : Contrainte sur l'intégrale de la densité
  7. * E/ Mr : FLOTTANT : Borne supérieure admissible de la densité (filtre)
  8. *
  9. * /S dRHOi : FLOTTANT : Correction de la densité
  10. * /S RHOk : CHPOINT : RHOi corrigé
  11. * /S MiCFD : FLOTTANT : Intégrale avant correction
  12. *
  13. * On impose à l'intégrale de la densité d'être égale à la valeur cible.
  14. * Pour cela on calcule la différence et on décalle de la densité
  15. * volumique moyenne associée à la différence en controlant la positivité
  16. * de la densité.
  17. *
  18. VOLi = 'DOMA' $vtf 'XXDIAGSI' ;
  19. VTotal = 'SOMT' VOLi ;
  20. *
  21. * On borne la densité par 1E-10 et Mr
  22. RHOi = 'KOPS' RHOi '|<' 1.e-10 ;
  23. RHOi = 'KOPS' RHOi '>|' Mr ;
  24. *
  25. * dRHOi : Correction moyenne de la densité
  26. MiCFD = 'SOMT' (VOLi '*' RHOi) ;
  27. dMi = Mi0D '-' MiCFD ;
  28. dRHOi = dMi '/' VTotal ;
  29. *
  30. * S'il manque de la masse on en ajoute partout. S'il y en a trop, on
  31. * l'enlève partout en vérifiant la positivité : on redistribue alors
  32. * uniformement la masse négative dans la partie positive du champ
  33. * jusqu'à convergence.
  34. *
  35. 'SI' (dMi '>EG' 0.) ;
  36. RHOk = RHOi + dRHOi ;
  37. 'SINO' ;
  38. nfs = 15 ; epsim = 0. ; epsir = 1.e-20 ; epsiv = epsir '*' VTotal ;
  39. dMk = 'ABS' dMi ;
  40. RHOk = RHOi ;
  41. 'REPE' Bcor nfs ;
  42. ik = 'MASQ' RHOk 'SUPERIEUR' epsim ;
  43. RHOk = ik '*' RHOk ;
  44. 'SI' (dMk '&lt;EG' epsir) ;
  45. 'QUIT' Bcor ;
  46. 'SINO' ;
  47. 'SI' (&bcor 'EGA' nfs) ;
  48. 'MESS' 'Mi0D' Mi0D ' ' 'MiCFD ' MiCFD ;
  49. 'MESS' dmk ;
  50. 'MESS' 'CORMASSE : NON CONVERGENCE' ;
  51. * 'ERRE' 5 ;
  52. 'FINS' ;
  53. 'FINS' ;
  54. Vk = 'SOMT' (VOLi '*' ik) ;
  55. dRHOk = dMk '/' (Vk + epsiv) ;
  56. RHOk = RHOk '-' dRHOk ;
  57. ikp = 'MASQ' RHOk 'INFERIEUR' epsim ;
  58. dMk = 'SOMT' (VOLi'*' ik '*' ikp '*' RHOk) 'ABS' ;
  59. 'FIN' Bcor ;
  60. 'FINS' ;
  61. RHOk = 'KCHT' $vtf 'SCAL' 'SOMMET' RHOk ;
  62. *
  63. 'FINP' dRHOi RHOk MiCFD ;
  64.  
  65.  
  66.  

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