Télécharger pente1.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : pente1.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. ***********************************************************
  5. **** APPROCHE VF "Cell-Centred Formulation". ****
  6. **** OPÉRATEUR PENT, pour le calcul des gradients et ****
  7. **** des limiteurs ****
  8. **** Cas test: calcul du gradient reconstruction ****
  9. **** linéaire exacte ****
  10. **** ****
  11. **** A. BECCANTINI, TTMF MAI 1998 ****
  12. **** Modif, 10/07/01, syntaxe de PENT changée ****
  13. ***********************************************************
  14.  
  15.  
  16.  
  17. 'OPTION' 'ECHO' 1 ;
  18. 'OPTION' 'DIME' 2 ;
  19. 'OPTION' 'ELEM' 'TRI3' ;
  20. 'OPTION' 'TRAC' 'X' ;
  21.  
  22. GRAPH = VRAI ;
  23. GRAPH = FAUX ;
  24.  
  25. *
  26. *** MAILLAGE
  27. *
  28.  
  29. A0 = 0.0D0 0.0D0 ;
  30. A1 = 3.0D0 0.0D0 ;
  31. A2 = 3.0D0 3.0D0 ;
  32. A3 = 0.0D0 3.0D0 ;
  33. A4 = 6.0D0 0.0D0 ;
  34. A5 = 6.0D0 3.0D0 ;
  35.  
  36. N1 = 2 ;
  37. N2 = 3 ;
  38. N3 = 4 ;
  39. N4 = 2 ;
  40. N5 = 2 ;
  41. N6 = 2 ;
  42. N7 = 1;
  43.  
  44. LINEXT1 = ((A0 D N1 A1) 'ET' (A1 D N2 A2) 'ET'
  45. (A2 D N3 A3) 'ET' (A3 D N4 A0)) ;
  46.  
  47. LINEXT2 = ((A1 D N2 A2) 'ET' (A2 D N5 A5) 'ET'
  48. (A5 D N6 A4) 'ET' (A4 D N7 A1)) ;
  49.  
  50. 'OPTION' 'ELEM' TRI3;
  51. DOM1 = 'SURFACE' LINEXT1 'PLAN';
  52.  
  53. 'OPTION' 'ELEM' QUA4;
  54. DOM2 = 'SURFACE' LINEXT2 'PLAN';
  55.  
  56.  
  57. DOMTOT = DOM1 'ET' DOM2;
  58. 'ELIMINATION' 1D-6 DOMTOT;
  59.  
  60. LTYPE = 'MOTS' 'TRI3' 'QUA4' ;
  61. LELEM = 'NBEL' DOMTOT LTYPE ;
  62.  
  63.  
  64. 'MESSAGE' ;
  65. 'MESSAGE' 'Le maillage :';
  66. 'MESSAGE' ('CHAINE' 'Nombre TRI3: ' ('EXTRAIRE' LELEM 1));
  67. 'MESSAGE' ('CHAINE' 'Nombre QUA4: ' ('EXTRAIRE' LELEM 2));
  68.  
  69. *
  70. **** Le domaine interne
  71. *
  72.  
  73. MAICON = DOMTOT 'ELEM' 'APPUYE' 'LARGEMENT' ('CONTOUR' DOMTOT);
  74. DOMINT = DOMTOT 'DIFF' MAICON 'COULEUR' 'VERTE' ;
  75.  
  76. MDNS = 'EULER' ;
  77. $DOMTOT = 'MODE' DOMTOT MDNS ;
  78. $DOMINT = 'MODE' DOMINT MDNS ;
  79. *
  80. TDOMTOT = 'DOMA' $DOMTOT 'VF' ;
  81. TDOMINT = 'DOMA' $DOMINT 'VF' ;
  82. MDOMTOT = TDOMTOT . 'QUAF';
  83. MDOMINT = TDOMINT . 'QUAF';
  84. 'ELIM' (MDOMTOT 'ET' MDOMINT) 1D-6;
  85.  
  86. 'SI' GRAPH ;
  87. 'TRACER' DOMTOT 'TITRE' 'Domaine' ;
  88. 'FINSI' ;
  89.  
  90. *
  91. *** Calcul du gradient pour un champ lineaire
  92. *
  93.  
  94. COEF1X = 2.01517 ;
  95. COEF1Y = 3.1421 ;
  96. COEF2X = -2.7 ;
  97. COEF2Y = -3.21 ;
  98. XX YY = 'COORDONNEE' ('DOMA' $DOMTOT 'CENTRE') ;
  99. CHP1 = (COEF1X '*' XX) '+' (COEF1Y '*' YY) ;
  100. CHP1 = 'NOMC' 'C1' CHP1 'NATU' 'DISCRET' ;
  101. CHP2 = (COEF2X '*' XX) '+' (COEF2Y '*' YY) ;
  102. CHP2 = 'NOMC' 'C2' CHP2 'NATU' 'DISCRET' ;
  103. CHP = CHP1 'ET' CHP2 ;
  104.  
  105. *
  106.  
  107. AA = 'CONTOUR' DOMTOT ;
  108. BB = 'MODELISER' AA 'EULER' ;
  109. CC = 'DOMA' BB 'VF' ;
  110. DD = CC . 'QUAF';
  111. 'ELIMINATION' MDOMTOT 1.0D-6 DD ;
  112.  
  113. XX YY = 'COORDONNEE' ('DOMA' BB 'CENTRE') ;
  114. CHP1 = (COEF1X '*' XX) '+' (COEF1Y '*' YY) ;
  115. CHP1 = 'NOMC' 'C1' CHP1 'NATU' 'DISCRET' ;
  116. CHP2 = (COEF2X '*' XX) '+' (COEF2Y '*' YY) ;
  117. CHP2 = 'NOMC' 'C2' CHP2 'NATU' 'DISCRET' ;
  118. CHPL = CHP1 'ET' CHP2 ;
  119.  
  120. *
  121. *
  122. **** N.B. : CHP1 n'as pas comme support geometrique
  123. * ('DOMA' $DOMTOT 'CENTRE')
  124. *
  125.  
  126. GRCHP0 CHPLIM COECH0 = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL'
  127. 'NOLIMITE' ('MOTS' 'C1' 'C2') CHP 'CLIM' CHPL ;
  128.  
  129. UNCH1=VECT GRCHP0 0.1 'P1DX' 'P1DY' ROUGE;
  130. UNCH2=VECT GRCHP0 0.1 'P2DX' 'P2DY' VERT;
  131.  
  132. GRCHP ALCHP COECH = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL'
  133. 'LIMITEUR' ('MOTS' 'C1' 'C2') CHP 'CLIM' CHPL ;
  134.  
  135. *
  136. **** Le calcul du limiteur ne change pas le gradient
  137. *
  138.  
  139. ERRO = 'MAXIMUM' ('PROG' ('MAXIMUM' (GRCHP0 '-' GRCHP) 'ABS')) ;
  140.  
  141. 'SI' (ERRO > 1E-15);
  142. 'MESSAGE' 'Probleme dans PENT';
  143. 'ERREUR' 5 ;
  144. 'FINSI';
  145.  
  146. EXGRAD1 = 'KCHT' $DOMTOT 'VECT' 'CENTRE'
  147. 'COMP' 'P1DX' 'P1DY' (COEF1X COEF1Y);
  148.  
  149. EXGRAD2 = 'KCHT' $DOMTOT 'VECT' 'CENTRE'
  150. 'COMP' 'P2DX' 'P2DY' (COEF2X COEF2Y);
  151.  
  152. EXGRAD = EXGRAD1 'ET' EXGRAD2 ;
  153.  
  154. ERRO = 'MAXIMUM' (EXGRAD '-' GRCHP) 'ABS';
  155.  
  156. 'SI' (ERRO > 1D-12);
  157. 'MESSAGE' ;
  158. 'MESSAGE' ('CHAINE' 'Probleme dans PENT');
  159. 'MESSAGE' ;
  160. 'ERREUR' 5;
  161. 'FINSI' ;
  162.  
  163. 'SI' GRAPH ;
  164. TRAC UNCH1 DOMTOT ;
  165. TRAC UNCH2 DOMTOT;
  166. 'FINSI' ;
  167.  
  168. 'FIN' ;
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  

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