Télécharger fronabs2.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : fronabs2.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. ********************************************************************
  5. *
  6. * test des frontieres absorbantes pour les fluides
  7. *
  8. * on compare la reponse d'une ligne infinie d'eau soumise à une impulsion
  9. * avec la reponse d'une ligne identique mais plus courte avec des
  10. * frontières absorbantes
  11. *
  12. *******************************************************************
  13.  
  14. opti dime 2 elem qua4 mode plan defo;
  15.  
  16. *******************************************************
  17. graph = 'N' ;
  18. * ligne longue
  19. ***********************************
  20.  
  21. p1=0 0; p2=60 0;
  22.  
  23. l1=p1 d 60 p2;
  24.  
  25. eau1= l1 tran 1 (0 1) ;;
  26. pp = eau1 poin proc ( 8 0) ;
  27. lforce = cote eau1 4 ;
  28. si (non (ega graph 'N')) ;
  29. trac eau1 ;
  30. finsi ;
  31.  
  32. modf = 'MODELI' eau1 liquide lqu4 ;
  33. matf = mate modf RHO 1.E3 RORF 1.e3 CSON 1435.
  34. CREF 1435. LCAR 1. G 9.81;
  35.  
  36. rig1 = rigi modf matf ;
  37. mass1 = mass modf matf ;
  38.  
  39. forc1= manu chpo lforce 1 'FPI' 1. ;
  40. forc1 = forc1*1000*1;
  41. dt = .9/1435.;
  42. l_tem = prog 0. dt (2*dt) (1000*dt) ;
  43. l_for = prog 0. 1. 0 0 ;
  44.  
  45. evc1=evol manu 'temps' l_tem 'force' l_for;
  46. char1=char meca forc1 evc1;
  47.  
  48. tab = table ;
  49. tab.depl = manu chpo eau1 2 p 0. 'PI' 0.;
  50. tab.vite = manu chpo eau1 2 p 0. 'PI' 0.;
  51. tab.char = char1 ;
  52. tab.rigi = rig1 ;
  53. tab.mass = mass1 ;
  54. dtsor = dt;
  55. tab.inst = prog 0. pas dtsor 0.03 ;
  56. tab.freq = 1./4./dtsor ;
  57.  
  58. tab2 = dynamic tab ;
  59.  
  60. dim1 = dime tab2 ;
  61. progp = prog ; progt = prog ;
  62. repeter bou1 dim1 ;
  63. tt = (&bou1 - 1)*dtsor ;
  64. dep1 = tab2.&bou1.depl ;
  65. xp = (extr dep1 pp 'P')*1435*1435*1000. ;
  66. progp = progp et (prog xp) ;
  67. progt = progt et (prog tt) ;
  68. fin bou1 ;
  69. ev1 = evol manu 'temps' progt 'pression' progp ;
  70.  
  71. *******************************************************
  72.  
  73. * ligne courte
  74. ***********************************
  75.  
  76. p0=0 0; p2=9 0;
  77.  
  78. l1=p1 d 9 p2;
  79.  
  80. eau1= l1 tran 1 (0 1) ;;
  81. pp = eau1 poin proc ( 8 0) ;
  82. lforce = cote eau1 4 ;
  83. lfront = cote eau1 2 ;
  84. si (non (ega graph 'N')) ;
  85. trac eau1 ;
  86. finsi ;
  87.  
  88. modf = 'MODELI' eau1 liquide lqu4 ;
  89. matf = mate modf RHO 1.E3 RORF 1.e3 CSON 1435.
  90. CREF 1435. LCAR 1. G 9.81;
  91.  
  92. rig1 = rigi modf matf ;
  93. mass1 = mass modf matf ;
  94.  
  95. forc1= manu chpo lforce 1 'FPI' 1. ;
  96. forc1 = forc1*1000*1;
  97. char1=char meca forc1 evc1;
  98.  
  99. tab = table ;
  100. tab.depl = manu chpo eau1 2 p 0. 'PI' 0.;
  101. tab.vite = manu chpo eau1 2 p 0. 'PI' 0.;
  102. tab.char = char1 ;
  103. tab.rigi = rig1 ;
  104. tab.mass = mass1 ;
  105. tab.amor = (amor modf matf lfront);
  106. tab.inst = prog 0. pas dtsor 0.03 ;
  107. tab.freq = 1./4./dtsor ;
  108.  
  109. tab2 = dynamic tab ;
  110.  
  111. dim1 = dime tab2 ;
  112. progp = prog ; progt = prog ;
  113. repeter bou1 dim1 ;
  114. tt = (&bou1 - 1)*dtsor ;
  115. dep1 = tab2.&bou1.depl ;
  116. xp = (extr dep1 pp 'P')*1435*1435*1000. ;
  117. progp = progp et (prog xp) ;
  118. progt = progt et (prog tt) ;
  119. fin bou1 ;
  120. ev2 = evol rouge manu 'temps' progt 'pression' progp ;
  121.  
  122. *********************
  123. *
  124. * comparaison
  125. *********************
  126. titre 'comparaison entre les deux solutions';
  127. tabd = table ; tabd.'TITRE' = table ;
  128. tabd.'TITRE'. 1 = mot 'LIGNE INFINIE' ;
  129. tabd.'TITRE'. 2 = mot 'LIGNE AVEC FRONTIERES ABSORBANTES' ;
  130.  
  131. si (non (ega graph 'N')) ;
  132. dess (ev1 et ev2) tabd lege;
  133. finsi ;
  134.  
  135. y1 = extr ev1 ordo ; y2 = extr ev2 ordo ;
  136. ymax = maxi abs y1 ; dy = abs (y2 - y1) ;
  137. err1 = (maxi (dy/ymax) ) * 100 ;
  138. mess 'difference relative entre les deux solutions'err1'%' ;
  139.  
  140. si (err1 > 3.) ;
  141. erre 5 ;
  142. sinon;
  143. erre 0 ;
  144. finsi ;
  145. fin ;
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  

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