Télécharger fcourant.procedur

Retour à la liste

Numérotation des lignes :

  1. * FCOURANT PROCEDUR GOUNAND 07/12/21 21:15:01 6010
  2. ************************************************************************
  3. * NOM : FCOURANT
  4. * DESCRIPTION : Calcul la fonction de courant en 2D et 2D Axi
  5. * par une méthode d'éléments finis moindres carrés
  6. *
  7. * LANGAGE : GIBIANE-CAST3M
  8. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  9. * mél : gounand@semt2.smts.cea.fr
  10. **********************************************************************
  11. * VERSION : v1, 22/11/2007, version initiale
  12. * HISTORIQUE : v1, 22/11/2007, création
  13. * HISTORIQUE :
  14. * HISTORIQUE :
  15. ************************************************************************
  16. *
  17. * Procedure fonction de courant 2D et 2D axi
  18. * - modns : modele Navier-Stokes
  19. * - disc : discretisation des champs au sommet (QUAF ou LINE)
  20. * - un : champ de vitesses
  21. * - clphi : conditions de Dirichlet sur phi
  22. * (nom de composante 'SCAL')
  23. *
  24. * en 2D, on résout : dpsi/dx = u_y
  25. * dpsi/dy = -u_x
  26. * en 2D axi , on résout : dpsi/dr = 2pi r u_z
  27. * dpsi/dz = - 2 pi r u_r
  28. *
  29. *
  30. *
  31. 'DEBPROC' FCOURANT ;
  32. *
  33. 'ARGUMENT' mquaf*'MAILLAGE' ;
  34. 'ARGUMENT' disc*'MOT' ;
  35. 'ARGUMENT' un*'CHPOINT' ;
  36. 'ARGUMENT' clphi/'CHPOINT' ;
  37. *
  38. 'SI' ('NON' ('EXISTE' clphi)) ;
  39. pref = 'POIN' ('CHANGER' mquaf 'POI1') 1 ;
  40. clphi = 'MANUEL' 'CHPO' pref 1 'SCAL' 0.D0 ;
  41. 'FINSI' ;
  42. *
  43. 'ARGUMENT' rvm/'TABLE' ;
  44. 'SI' ('NON' ('EXISTE' rvm)) ;
  45. rv = 'EQEX' ;
  46. rvm = rv . 'METHINV' ;
  47. 'FINSI' ;
  48. *
  49. dim = 'VALEUR' 'DIME' ;
  50. *
  51. 'SI' ('NEG' dim 2) ;
  52. 'ERREUR' 219 ;
  53. 'FINSI' ;
  54. *
  55. laxi = 'EGA' ('VALEUR' 'MODE') 'AXIS' ;
  56. ncx = 'MOTS' 'UX' ; ncy = 'MOTS' 'UY' ;
  57. *
  58. 'SI' laxi ;
  59. cdpr = '*' ('COORDONNEE' 1 mquaf) ('*' PI 2.D0) ;
  60. ur = 'EXCO' ncx un ;
  61. uz = 'EXCO' ncy un ;
  62. *
  63. numop = 2 ; numvar = 1 ; numdat = 0 ;
  64. numcof = 0 ; numder = 2 ;
  65. *
  66. A = ININLIN numop numvar numdat numcof numder ;
  67. A . 'VAR' . 1 . 'NOMDDL' = 'MOTS' 'SCAL' ;
  68. A . 'VAR' . 1 . 'DISC' = disc ;
  69. A . 1 . 1 . 1 = 'LECT' ;
  70. A . 2 . 1 . 2 = 'LECT' ;
  71. *
  72. numdat = 1 ; numcof = 1 ;
  73. B = ININLIN numop numvar numdat numcof numder ;
  74. B . 'VAR' . 1 . 'NOMDDL' = 'MOTS' 'SCAL' ;
  75. B . 'VAR' . 1 . 'DISC' = disc ;
  76. B . 'DAT' . 1 . 'NOMDDL' = 'MOTS' 'SCAL' ;
  77. B . 'DAT' . 1 . 'DISC' = disc ;
  78. B . 'DAT' . 1 . 'VALEUR' = cdpr ;
  79. B . 'COF' . 1 . 'COMPOR' = 'IDEN' ;
  80. B . 'COF' . 1 . 'LDAT' = 'LECT' 1 ;
  81. *
  82. B . 1 . 1 . 1 = 'LECT' 1 ;
  83. B . 2 . 1 . 2 = 'LECT' 1 ;
  84. *
  85. numvar = 2 ;
  86. C = ININLIN numop numvar numdat numcof numder ;
  87. C . 'VAR' . 1 . 'NOMDDL' = ncx ;
  88. C . 'VAR' . 1 . 'DISC' = disc ;
  89. C . 'VAR' . 1 . 'VALEUR' = '*' ur -1. ;
  90. C . 'VAR' . 2 . 'NOMDDL' = ncy ;
  91. C . 'VAR' . 2 . 'DISC' = disc ;
  92. C . 'VAR' . 2 . 'VALEUR' = uz ;
  93. C . 'DAT' . 1 . 'NOMDDL' = 'MOTS' 'SCAL' ;
  94. C . 'DAT' . 1 . 'DISC' = disc ;
  95. C . 'DAT' . 1 . 'VALEUR' = cdpr ;
  96. C . 'COF' . 1 . 'COMPOR' = 'IDEN' ;
  97. C . 'COF' . 1 . 'LDAT' = 'LECT' 1 ;
  98. *
  99. C . 1 . 2 . 0 = 'LECT' 1 ;
  100. C . 2 . 1 . 0 = 'LECT' 1 ;
  101. *
  102. mat = NLIN mquaf disc A B 'GAU7' ;
  103. mat = 'KOPS' 'RIMA' mat ;
  104. smb = NLIN mquaf disc C B 'GAU7' ;
  105. *
  106. 'SINON' ;
  107. *
  108. ux = 'EXCO' ncx un ;
  109. uy = 'EXCO' ncy un ;
  110. *
  111. numop = 2 ; numvar = 1 ; numdat = 0 ;
  112. numcof = 0 ; numder = 2 ;
  113. *
  114. A = ININLIN numop numvar numdat numcof numder ;
  115. A . 'VAR' . 1 . 'NOMDDL' = 'MOTS' 'SCAL' ;
  116. A . 'VAR' . 1 . 'DISC' = disc ;
  117. A . 1 . 1 . 1 = 'LECT' ;
  118. A . 2 . 1 . 2 = 'LECT' ;
  119. *
  120. numvar = 2 ;
  121. B = ININLIN numop numvar numdat numcof numder ;
  122. B . 'VAR' . 1 . 'NOMDDL' = ncx ;
  123. B . 'VAR' . 1 . 'DISC' = disc ;
  124. B . 'VAR' . 1 . 'VALEUR' = '*' ux -1. ;
  125. B . 'VAR' . 2 . 'NOMDDL' = ncy ;
  126. B . 'VAR' . 2 . 'DISC' = disc ;
  127. B . 'VAR' . 2 . 'VALEUR' = uy ;
  128. *
  129. B . 1 . 2 . 0 = 'LECT' ;
  130. B . 2 . 1 . 0 = 'LECT' ;
  131. *
  132. mat = NLIN mquaf disc A A 'GAU7' ;
  133. mat = 'KOPS' 'RIMA' mat ;
  134. smb = NLIN mquaf disc B A 'GAU7' ;
  135. 'FINSI' ;
  136. *
  137. psi = 'KRES' mat 'TYPI' rvm 'CLIM' clphi 'SMBR' smb ;
  138. 'RESPRO' psi ;
  139. *
  140. 'FINPROC' ;
  141.  
  142.  

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