Télécharger ipol_muli_2.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : ipol_muli_2.dgibi
  2. OPTI 'DIME' 3 'ELEM' 'CU20' 'ECHO' 0 ;
  3. ************************************************************************
  4. ************************************************************************
  5.  
  6. ************************************************************************
  7. * Test de l'operateur IPOL option GRILL *
  8. * interpolation multi-lineaire d'une fonction de n parametres *
  9. * definie sur une grile de points *
  10. * *
  11. * Application a l'interpolation d'un champ de temperature sur un *
  12. * cylindre *
  13. * - test avec temperature fonction de 2 variables (r, theta) *
  14. * - test avec temperature fonction de 3 variables (r, theta, z) *
  15. * - test avec des CHPOINTs et des MCHAMLs *
  16. ************************************************************************
  17.  
  18.  
  19. ** Indicateur pour le trace des champs interpoles
  20. itrac = FAUX ;
  21.  
  22.  
  23. ** Maillage du cylindre
  24. p1 = 1.5 0. -5. ;
  25. p2 = 3.5 0. -5. ;
  26. l1 = DROI 20 p1 p2 ;
  27. mail1 = l1 ROTA 72 360. (0. 0. 0.) (0. 0. 1.) ;
  28. ELIM 1.E-9 mail1 ;
  29. mail2 = mail1 VOLU 'TRAN' 50 (0. 0. 20.) ;
  30. MESS ; MESS ; MESS ;
  31.  
  32.  
  33.  
  34. ** TEST en dimension 2
  35. ** -------------------
  36. ** Grille de valeurs de la fonction
  37. lr = PROG 2. 3. ;
  38. lt = PROG -180. 0. 180. ;
  39. lf = PROG 450. 410. 430. 400. 450. 410. ;
  40. ** Tolerance pour les tests sur les valeurs interpolees
  41. fmax = 'MAXI' lf 'ABS' ;
  42. tol1 = ('VALE' 'PREC') '*' 16. '*' fmax ;
  43. 'MESS' 'tol1 =' tol1 ;
  44. *tol1 = 1.E-14 ;
  45.  
  46. ** Champs de coordonnees polaires du maillage de la couronne inferieure
  47. x y z = COOR mail1 ;
  48. r = ((x**2) + (y**2))**0.5 ;
  49. t = ATG y x ;
  50. chp1 = (NOMC 'R' r 'NATU' 'DIFFUS') ET (NOMC 'T' t 'NATU' 'DIFFUS') ;
  51. mo = MODE mail1 'MECANIQUE' ;
  52. che1 = CHAN 'CHAM' mo chp1 'STRESSES' ;
  53.  
  54. ** Interpolation du champ sur la couronne
  55. MESS 'Interpolation bi-lineaire' ;
  56. nu1 = NUAG 'COMP' 'R' lr
  57. 'COMP' 'T' lt
  58. 'COMP' 'FONC' lf ;
  59. chp2 = IPOL chp1 nu1 'GRILL' ;
  60. che2 = IPOL che1 nu1 'GRILL' ;
  61.  
  62. ** Test des valeurs interpolees en certains points cibles
  63. tp = TABL ;
  64. tf = TABL ;
  65. tp . 1 = (1.5 * (COS 0.)) (1.5 * (SIN 0.)) -1. ;
  66. tf . 1 = 430. ;
  67. tp . 2 = (1.5 * (COS 90.)) (1.5 * (SIN 90.)) -1. ;
  68. tf . 2 = 440. ;
  69. tp . 3 = (2.5 * (COS 90.)) (2.5 * (SIN 90.)) -1. ;
  70. tf . 3 = 422.5 ;
  71. tp . 4 = (2.5 * (COS 220.)) (2.5 * (SIN 220.)) -1. ;
  72. tf . 4 = 426.666666666666 ;
  73. MESS ' Point | Valeur | Valeur | Erreur' ;
  74. MESS ' | theorique | interpolee | ' ;
  75. MESS '--------|----------------|----------------|-------' ;
  76. REPE b1 (DIME tp) ;
  77. ft = tf . &b1 ;
  78. pt = mail1 POIN 'PROC' (tp . &b1) ;
  79. fc = EXTR chp2 'FONC' pt ;
  80. err1 = ABS (fc - ft) ;
  81. MESS &b1 '|' ft '|' fc '|' err1 ;
  82. SI (err1 > tol1) ;
  83. MESS ; MESS ;
  84. MESS 'ECHEC DU CAS TEST !' ;
  85. ERREUR 4 ;
  86. FINSI ;
  87. FIN b1 ;
  88. SI itrac ;
  89. TRAC chp2 mail1 'TITR' 'Interpolation bi-lineaire CHPOINT' ;
  90. TRAC che2 mo 'TITR' 'Interpolation bi-lineaire MCHAML' ;
  91. FINSI ;
  92. MESS ; MESS ; MESS ;
  93.  
  94.  
  95.  
  96. ** TEST en dimension 3
  97. ** -------------------
  98. ** Grille de valeurs de la fonction
  99. lz = PROG 0. 10. ;
  100. lf = lf ET (PROG 750. 700. 660. 600. 750. 700.) ;
  101.  
  102. ** Champ de coordonnees polaires du maillage du cylindre
  103. x y z = COOR mail2 ;
  104. r = ((x**2) + (y**2))**0.5 ;
  105. t = ATG y x ;
  106. chp1 = (NOMC 'R' r 'NATU' 'DIFFUS') ET (NOMC 'T' t 'NATU' 'DIFFUS') ET
  107. (NOMC 'Z' z 'NATU' 'DIFFUS') ;
  108. mo = MODE mail2 'MECANIQUE' ;
  109. che1 = CHAN 'CHAM' mo chp1 'STRESSES' ;
  110.  
  111. ** Interpolation tri-lineaire
  112. MESS 'Interpolation tri-lineaire' ;
  113. nu1 = NUAG 'COMP' 'R' lr
  114. 'COMP' 'T' lt
  115. 'COMP' 'Z' lz
  116. 'COMP' 'FONC' lf ;
  117. chp2 = IPOL chp1 nu1 'GRILL' ;
  118. che2 = IPOL che1 nu1 'GRILL' ;
  119.  
  120. ** Test des valeurs interpolees en certains points cibles
  121. tp = TABL ;
  122. tf = TABL ;
  123. tp . 1 = (1.5 * (COS 0.)) (1.5 * (SIN 0.)) -1. ;
  124. tf . 1 = 430. ;
  125. tp . 2 = (1.5 * (COS 90.)) (1.5 * (SIN 90.)) -1. ;
  126. tf . 2 = 440. ;
  127. tp . 3 = (2.5 * (COS 90.)) (2.5 * (SIN 90.)) 0. ;
  128. tf . 3 = 422.5 ;
  129. tp . 4 = (2.5 * (COS 220.)) (2.5 * (SIN 220.)) 0. ;
  130. tf . 4 = 426.666666666666 ;
  131. tp . 5 = (3. * (COS 270.)) (3. * (SIN 270.)) 11. ;
  132. tf . 5 = 650. ;
  133. tp . 6 = (2. * (COS 180.)) (2. * (SIN 180.)) 10. ;
  134. tf . 6 = 750. ;
  135. tp . 7 = (2.5 * (COS 140.)) (2.5 * (SIN 140.)) 10. ;
  136. tf . 7 = 703.888888888888 ;
  137. tp . 8 = (2.5 * (COS 140.)) (2.5 * (SIN 140.)) 5. ;
  138. tf . 8 = 565.277777777777 ;
  139. MESS ' Point | Valeur | Valeur | Erreur' ;
  140. MESS ' | theorique | interpolee | ' ;
  141. MESS '--------|----------------|----------------|-------' ;
  142. REPE b1 (DIME tp) ;
  143. ft = tf . &b1 ;
  144. pt = mail2 POIN 'PROC' (tp . &b1) ;
  145. fc = EXTR chp2 'FONC' pt ;
  146. err1 = ABS (fc - ft) ;
  147. MESS &b1 '|' ft '|' fc '|' err1 ;
  148. SI (err1 > tol1) ;
  149. MESS ; MESS ;
  150. MESS 'ECHEC DU CAS TEST !' ;
  151. ERREUR 4 ;
  152. FINSI ;
  153. FIN b1 ;
  154. SI itrac ;
  155. TRAC chp2 mail2 'TITR' 'Interpolation tri-lineaire CHPOINT' ;
  156. TRAC che2 mo 'TITR' 'Interpolation tri-lineaire MCHAML' ;
  157. FINSI ;
  158. MESS ; MESS ; MESS ;
  159.  
  160.  
  161.  
  162. MESS 'SUCCES DU CAS TEST !' ;
  163.  
  164.  
  165. FIN ;
  166.  
  167.  
  168.  
  169.  
  170.  

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