Télécharger pente3.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : pente3.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 avec conditions de ****
  9. **** typr mur ****
  10. **** ****
  11. **** A. BECCANTINI, TTMF JUILLET 2003 ****
  12. ***********************************************************
  13.  
  14. 'OPTION' 'ECHO' 1 'DIME' 2 'ELEM' 'TRI3' 'TRAC' 'X' ;
  15.  
  16. GRAPH = VRAI ;
  17. GRAPH = FAUX ;
  18.  
  19. P1 = 0.0 0.0 ;
  20. P2 = 1.0 0.0 ;
  21. P3 = 1.0 1.0 ;
  22.  
  23. P1P2 = P1 'DROIT' 5 P2 ;
  24. P2P3 = P2 'DROIT' 7 P3 ;
  25. P3P1 = P3 'DROIT' 9 P1 ;
  26.  
  27. DOMINT = 'SURFACE' (P1P2 'ET' P2P3 'ET' P3P1) ;
  28. $DOMINT = 'MODE' DOMINT 'EULER' ;
  29. TDOMINT = 'DOMA' $DOMINT 'VF' ;
  30. MDOMINT = TDOMINT . 'QUAF' ;
  31. *
  32. DOMSYM = DOMINT 'SYMETRIE' 'DROI' P1 P3 ;
  33. 'ELIMINATION' DOMINT DOMSYM 0.0001 ;
  34. $DOMSYM = 'MODE' DOMSYM 'EULER' ;
  35. TDOMSYM = 'DOMA' $DOMSYM 'VF' ;
  36. MDOMSYM = TDOMSYM . 'QUAF' ;
  37. *
  38. DOMTOT = DOMSYM 'ET' DOMINT ;
  39. $DOMTOT = 'MODE' DOMTOT 'EULER' ;
  40. TDOMTOT = 'DOMA' $DOMTOT 'VF' ;
  41. MDOMTOT = TDOMTOT . 'QUAF' ;
  42. *
  43. 'ELIMINATION' MDOMTOT MDOMSYM 0.0001 ;
  44. 'ELIMINATION' MDOMTOT MDOMINT 0.0001 ;
  45. *
  46. *** Calcul du gradient
  47. *
  48. * Gradient sur DOMTOT reduit sur DOMINT =
  49. * gradient sur DOMSYM
  50. *
  51. XX YY = 'COORDONNEE' ('DOMA' $DOMINT 'CENTRE') ;
  52. CHP1 = (3.0 '*' XX '*' XX) '+' (2.11 '*' YY '*' YY) ;
  53. CHP1 = 'NOMC' 'UX' CHP1 'NATU' 'DISCRET' ;
  54. CHP2 = (4.0 '*' XX) '+' (7.0 '*' YY) ;
  55. CHP2 = 'NOMC' 'UY' CHP2 'NATU' 'DISCRET' ;
  56. CHP = CHP1 'ET' CHP2 ;
  57. *
  58. **** Eulescal
  59. *
  60. GRCHP0 ALCHP0 COEF = 'PENT' $DOMINT 'CENTRE' 'EULESCAL'
  61. 'LIMITEUR' ('MOTS' 'UX' 'UY') CHP;
  62. * AB: 'SYMETRIE' ne marche pas pour un CHAMPOIN
  63. *
  64. AA = 'EXTRAIRE' GRCHP0 MAIL ;
  65. NN = 'NBNO' AA ;
  66. CHPSYM CACCA = 'KOPS' 'MATRIK' ;
  67. 'REPETER' BL1 NN ;
  68. BB = 'POIN' &BL1 AA ;
  69. CC = 'MANUEL' 'POI1' BB ;
  70. DD = CC 'SYMETRIE' 'DROI' P1 P3 ;
  71. VAL1 = 'EXTRAIRE' CHP 'UX' BB ;
  72. VAL2 = 'EXTRAIRE' CHP 'UY' BB ;
  73. CHPSYM = CHPSYM '+' ('MANUEL' 'CHPO' DD 2 'UX' VAL1
  74. 'UY' VAL2) ;
  75. 'FIN' BL1 ;
  76. *
  77. AA = 'EXTRAIRE' CHPSYM 'MAIL' ;
  78. 'ELIMINATION' AA (TDOMTOT . 'CENTRE') 0.0001 ;
  79. CHPTOT = CHP '+' CHPSYM ;
  80. *
  81. GRCHPT ALCHPT COEFT = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL'
  82. 'LIMITEUR' ('MOTS' 'UX' 'UY') CHPTOT ;
  83. GRCHP1 = 'REDU' GRCHPT (TDOMINT . 'CENTRE') ;
  84. ERRO = (GRCHP1 '-' GRCHP0) 'ABS' ;
  85. 'SI' GRAPH ;
  86. MODT = 'MODELISER' ('DOMA' $DOMTOT 'MAILLAGE') 'THERMIQUE' ;
  87. CHM_CHP = 'KCHA' $DOMTOT 'CHAM' CHPTOT ;
  88. 'TRACER' CHM_CHP MODT 'TITR' ('CHAINE' 'EULESCAL: champ');
  89. MOD1 = 'MODELISER' ('DOMA' $DOMINT 'MAILLAGE') 'THERMIQUE' ;
  90. CHM_MER = 'KCHA' $DOMINT 'CHAM' ERRO ;
  91. 'TRACER' CHM_MER MOD1 'TITR' ('CHAINE' 'EULESCAL: erreur');
  92. 'FINSI' ;
  93. 'SI' (('MAXIMUM' ERRO 'ABS') > 1.0D-8) ;
  94. 'ERREUR' 5 ;
  95. 'FINSI' ;
  96.  
  97. *
  98. *
  99. **** Eulevect (NB. angle = 45)
  100. *
  101. GRCHP0 ALCHP0 COEF = 'PENT' $DOMINT 'CENTRE' 'EULEVECT'
  102. 'LIMITEUR' ('MOTS' 'UX' 'UY') CHP;
  103. * AB: 'SYMETRIE' ne marche pas pour un CHAMPOIN
  104. *
  105. AA = 'EXTRAIRE' GRCHP0 MAIL ;
  106. NN = 'NBNO' AA ;
  107. CHPSYM CACCA = 'KOPS' 'MATRIK' ;
  108. 'REPETER' BL1 NN ;
  109. BB = 'POIN' &BL1 AA ;
  110. CC = 'MANUEL' 'POI1' BB ;
  111. DD = CC 'SYMETRIE' 'DROI' P1 P3 ;
  112. VAL1 = 'EXTRAIRE' CHP 'UX' BB ;
  113. VAL2 = 'EXTRAIRE' CHP 'UY' BB ;
  114. VALT = (VAL1 '+' VAL2) '/' (2.0 '**' 0.5) ;
  115. VALN = -1 '*' ((VAL1 '-' VAL2) '/' (2.0 '**' 0.5)) ;
  116. VALX = (VALN '+' VALT) '/' (2.0 '**' 0.5) ;
  117. VALY = (VALT '-' VALN) '/' (2.0 '**' 0.5) ;
  118. CHPSYM = CHPSYM '+' ('MANUEL' 'CHPO' DD 2 'UX' VALX
  119. 'UY' VALY) ;
  120. 'FIN' BL1 ;
  121. *
  122. AA = 'EXTRAIRE' CHPSYM 'MAIL' ;
  123. 'ELIMINATION' AA (TDOMTOT . 'CENTRE') 0.0001 ;
  124. CHPTOT = CHP '+' CHPSYM ;
  125. *
  126. GRCHPT ALCHPT COEFT = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT'
  127. 'LIMITEUR' ('MOTS' 'UX' 'UY') CHPTOT ;
  128. GRCHP1 = 'REDU' GRCHPT (TDOMINT . 'CENTRE') ;
  129. ERRO = (GRCHP1 '-' GRCHP0) 'ABS' ;
  130. 'SI' GRAPH ;
  131. MODT = 'MODELISER' ('DOMA' $DOMTOT 'MAILLAGE') 'THERMIQUE' ;
  132. CHM_CHP = 'KCHA' $DOMTOT 'CHAM' CHPTOT ;
  133. 'TRACER' CHM_CHP MODT 'TITR' ('CHAINE' 'EULESCAL: champ');
  134. MOD1 = 'MODELISER' ('DOMA' $DOMINT 'MAILLAGE') 'THERMIQUE' ;
  135. CHM_MER = 'KCHA' $DOMINT 'CHAM' ERRO ;
  136. 'TRACER' CHM_MER MOD1 'TITR' ('CHAINE' 'EULESCAL: erreur');
  137. 'FINSI' ;
  138. 'SI' (('MAXIMUM' ERRO 'ABS') > 1.0D-8) ;
  139. 'ERREUR' 5 ;
  140. 'FINSI' ;
  141. 'FIN' ;
  142. *
  143.  
  144.  
  145.  
  146.  
  147.  

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