Télécharger mulmatflo.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : mulmatflo.dgibi
  2. ***********************************************************
  3. **** OPERATEUR 'KOPS' ****
  4. **** OPERATEUR 'MDIA' ****
  5. **** Multiplication MATRIK FLOTTANT et ****
  6. **** MATRIK CHPOINT ****
  7. **** Creation de CHPOINTs 'ET' MATRIKs vides ****
  8. **** ****
  9. **** A. BECCANTINI, LTMF AOUT 2001 ****
  10. ***********************************************************
  11.  
  12.  
  13. 'OPTION' 'ECHO' 0 ;
  14. 'OPTION' 'DIME' 2 ;
  15. 'OPTION' 'ELEM' 'TRI3' ;
  16. 'OPTION' 'TRAC' 'X' ;
  17.  
  18. GRAPH = FAUX ;
  19. * GRAPH = VRAI ;
  20.  
  21. *
  22. *** MAILLAGE
  23. *
  24.  
  25.  
  26. P0 = 0.0D0 0.0D0 ;
  27. P1 = 3.0D0 0.0D0 ;
  28. P2 = 3.0D0 3.0D0 ;
  29. P3 = 0.0D0 3.0D0 ;
  30. P4 = 6.0D0 0.0D0 ;
  31. P5 = 6.0D0 3.0D0 ;
  32.  
  33. RAF = 1 ;
  34.  
  35. N1 = 2 '*' RAF ;
  36. N2 = 2 '*' RAF ;
  37. N3 = 2 '*' RAF ;
  38. N4 = 2 '*' RAF ;
  39. N5 = 1 '*' RAF ;
  40. N6 = 2 '*' RAF ;
  41. N7 = 2 '*' RAF ;
  42.  
  43.  
  44. LINEXT1 = ((P0 'DROIT' N1 P1) 'ET' (P1 'DROIT' N2 P2) 'ET'
  45. (P2 'DROIT' N3 P3) 'ET' (P3 'DROIT' N4 P0)) ;
  46.  
  47. LINEXT2 = ((P1 'DROIT' N2 P2) 'ET' (P2 'DROIT' N5 P5) 'ET'
  48. (P5 'DROIT' N6 P4) 'ET' (P4 'DROIT' N7 P1)) ;
  49.  
  50. 'OPTION' 'ELEM' QUA4 ;
  51. DOM1 = 'SURFACE' LINEXT1 'PLAN' ;
  52.  
  53. 'OPTION' 'ELEM' TRI3 ;
  54. DOM2 = 'SURFACE' LINEXT2 'PLAN' ;
  55.  
  56. DOMTOT = DOM1 'ET' DOM2;
  57. 'ELIMINATION' 1D-6 DOMTOT;
  58.  
  59. CHPBRU = ('NOMC' 'UX' ('BRUI' 'BLAN' 'UNIF' 0.0 0.4 DOMTOT)
  60. 'NATU' 'DISCRET') 'ET'
  61. ('NOMC' 'UY' ('BRUI' 'BLAN' 'UNIF' 0.0 0.2 DOMTOT)
  62. 'NATU' 'DISCRET') ;
  63.  
  64. 'FORME' CHPBRU ;
  65.  
  66. 'SI' GRAPH ;
  67. 'TRACER' DOMTOT ;
  68. 'FINSI' ;
  69.  
  70. $DOMTOT = 'DOMA' DOMTOT ;
  71. VOLUME = 'DOMA' $DOMTOT 'VOLUME' ;
  72.  
  73. *
  74. **** 'MDIA' pour la creation d'une matrice identité
  75. * matrice identité permuté
  76. *
  77.  
  78. RV = 'EQEX' $DOMTOT 'ITMA' 10
  79. 'OPTI' 'VF' 'IMPL' 'CENTREE'
  80. 'ZONE' $DOMTOT 'OPER' 'MDIA'
  81. ('INVERSE' ($DOMTOT . 'XXVOLUM'))
  82. 'INCO' 'UX' 'UX'
  83. 'ZONE' $DOMTOT 'OPER' 'MDIA'
  84. ('INVERSE' ($DOMTOT . 'XXVOLUM'))
  85. 'INCO' 'UY' 'UY' ;
  86.  
  87. RV . 'INCO' = 'TABLE' 'INCO' ;
  88. RV . 'INCO' . 'UX' = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 0.0 ;
  89. RV . 'INCO' . 'UY' = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 0.0 ;
  90.  
  91. MDIA (RV . '1MDIA') ;
  92. MAT4 = RV . '1MDIA' . 'MATELM' ;
  93.  
  94. MDIA (RV . '2MDIA') ;
  95. MAT5 = RV . '2MDIA' . 'MATELM' ;
  96.  
  97. MAT6 = MAT4 'ET' MAT5 ;
  98.  
  99. UN = ('NOMC' 'UX' ('BRUI' 'BLAN' 'UNIF' 0.0 0.4 $DOMTOT . 'CENTRE')
  100. 'NATU' 'DISCRET') 'ET'
  101. ('NOMC' 'UY' ('BRUI' 'BLAN' 'UNIF' 0.0 0.2 $DOMTOT . 'CENTRE')
  102. 'NATU' 'DISCRET') ;
  103.  
  104. UN1 = 'KOPS' MAT6 'MULT' UN ;
  105.  
  106. ERRO = 'MAXIMUM' (UN1 '-' UN) 'ABS' ;
  107.  
  108. 'SI' (ERRO > 1.0D-12) ;
  109. 'MESSAGE' 'Probleme en KOPS ou en MDIA' ;
  110. 'ERREUR' 5 ;
  111. 'FINSI' ;
  112.  
  113. * Matrice identité permuté
  114. * Variable primale: 'UX'
  115. * Variable duale : 'UY'
  116.  
  117. RV = 'EQEX' $DOMTOT 'ITMA' 10
  118. 'OPTI' 'VF' 'IMPL' 'CENTREE'
  119. 'ZONE' $DOMTOT 'OPER' 'MDIA'
  120. ('INVERSE' ($DOMTOT . 'XXVOLUM'))
  121. 'INCO' 'UX' 'UY' ;
  122.  
  123. RV . 'INCO' = 'TABLE' 'INCO' ;
  124. RV . 'INCO' . 'UX' = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 0.0 ;
  125. RV . 'INCO' . 'UY' = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 0.0 ;
  126.  
  127. MDIA (RV . '1MDIA') ;
  128. MAT4 = RV . '1MDIA' . 'MATELM' ;
  129.  
  130. UN1 = ('NOMC' 'UX' ('BRUI' 'BLAN' 'UNIF' 0.0 0.4 $DOMTOT . 'CENTRE')
  131. 'NATU' 'DISCRET') ;
  132. UN2 = 'NOMC' 'UY' UN1 'NATU' 'DISCRET' ;
  133.  
  134. UN3 = 'KOPS' MAT4 'MULT' UN1 ;
  135.  
  136. ERRO = 'MAXIMUM' (UN2 '-' UN3) 'ABS' ;
  137.  
  138. 'SI' (ERRO > 1.0D-12) ;
  139. 'MESSAGE' 'Probleme en KOPS ou en MDIA' ;
  140. 'ERREUR' 5 ;
  141. 'FINSI' ;
  142.  
  143. *
  144. **** 'KOPS' 'MATIDE' pour la creation d'une matrice identité
  145. *
  146.  
  147. LMOT = 'MOTS' 'UX' 'UY' ;
  148.  
  149. COEF = 4.0 ;
  150.  
  151. MAT1 = 'KOPS' 'MATIDE' LMOT ($DOMTOT . 'CENTRE') 'MATRIK' ;
  152. MAT2 = 'KOPS' 'MATIDE' LMOT ($DOMTOT . 'CENTRE') 'MATRIK' ;
  153. MAT3 = 'KOPS' 'MATIDE' LMOT ($DOMTOT . 'CENTRE') 'MATRIK' ;
  154.  
  155. *
  156. **** Distibutivité entre '+' et 'MULT'
  157. *
  158.  
  159. MATR1 = ('KOPS' MAT1 'MULT' COEF) 'ET'
  160. ('KOPS' MAT2 'MULT' COEF) 'ET'
  161. ('KOPS' MAT3 'MULT' COEF) ;
  162.  
  163. MATR2 = 'KOPS' (MAT1 'ET' MAT2 'ET' MAT3)
  164. 'MULT' COEF ;
  165.  
  166. UN = ('MANUEL' 'CHPO' ($DOMTOT . 'CENTRE') 2
  167. 'UX' 1.0 'UY' 0.0 'NATU' 'DISCRET') ;
  168.  
  169. RIS1 = ('KOPS' MATR1 'MULT' UN) ;
  170. RIS2 = ('KOPS' MATR2 'MULT' UN) ;
  171. RISEX = ('MANUEL' 'CHPO' ($DOMTOT . 'CENTRE') 2
  172. 'UX' (COEF '*' 3.) 'UY' 0.0 'NATU' 'DISCRET') ;
  173.  
  174. *
  175. ***
  176.  
  177. ERRO = 'MAXIMUM' (RIS1 '-' RISEX) 'ABS' ;
  178. ERRO = 'MAXIMUM' ('PROG' ERRO ('MAXIMUM' (RIS1 '-' RISEX) 'ABS')) ;
  179.  
  180. 'SI' (ERRO > 1.0D-12) ;
  181. 'MESSAGE' 'Probleme en ET or en KOPS ' ;
  182. 'ERREUR' 5 ;
  183. 'FINSI' ;
  184.  
  185. * Les CHPOINTs et les MATRIKs vides
  186.  
  187. CHPVIDE MATVID = 'KOPS' 'MATRIK' ;
  188.  
  189. MATR3 = MATR2 'ET' ('KOPS' MATVID 'MULT' 17.5D0) ;
  190. RIS3 = ('KOPS' MATR3 'MULT' UN) 'ET' (CHPVIDE '*' 2.1D0)
  191. 'ET' ('KOPS' CHPVIDE 'MULT' 12.2D0) ;
  192.  
  193. ERRO = 'MAXIMUM' (RIS3 '-' RISEX) 'ABS' ;
  194.  
  195. 'SI' (ERRO > 1.0D-12) ;
  196. 'MESSAGE' 'Probleme en ET or en KOPS ' ;
  197. 'ERREUR' 5 ;
  198. 'FINSI' ;
  199.  
  200.  
  201. 'FIN' ;
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  

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