Télécharger kopsrot2D.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : kopsrot2D.dgibi
  2. ***************** CAS TEST : kopsrot2D.dgibi *************************
  3. *
  4. GRAPH = faux ;
  5. eps0 = 1.D-10 ;
  6. 'SAUT' 'PAGE' ;
  7. *
  8. *-------------------------------------------------------------------
  9. * TEST kopsrot2D
  10. *
  11. * Ce test permet de vérifier le bon fonctionnement de l'option ROT
  12. * de KOPS en 2D PLAN et 2D AXIS pour les trois familles d'éléments
  13. * compatibles avec le modèle NAVIER_STOKES
  14. *
  15. * On calcule la composante non nulle du rotationel d'un champ de vecteur
  16. * (a0+a1*x+a2*y,b0+b1*x+b2*y). Il est porté par z en cartésien ou par
  17. * Eteta en axi, ces vecteurs unitaires formant la base directe ad'hoc :
  18. * (x,y,z) en cartésien et (Er, Eteta, Ez) en axi. Il est ici constant et
  19. * égale à :
  20. * (b1-a2) en cartésien
  21. * (a2-b1) en axisymétrique
  22. *
  23. * On s'attend à une précision de l'ordre de la précision machine.
  24. *
  25. *-------------------------------------------------------------------
  26. *
  27. 'SAUT' 'PAGE' ;
  28. 'OPTION' 'DIME' 2 'ELEM' 'QUA4' 'MODE' 'AXIS' 'ECHO' 0 ;
  29. *
  30. *-------------------------------------------------------------------------
  31. * Procedure test2D
  32. * /S test1 : boolean (vrai si ok)
  33. *-------------------------------------------------------------------------
  34. 'DEBP' test2D ;
  35. *
  36. m1x m1y = 'COOR' DOMTOT ;
  37. a0 = 7. ; a1= 2. ; a2= -5. ;
  38. b0 = 11. ; b1= 1. ; b2= 3. ;
  39. p1x = 'NOMC' 'UX' ( a0 '+' (a1*m1x) '+' (a2*m1y) ) ;
  40. p1y = 'NOMC' 'UY' ( b0 '+' (b1*m1x) '+' (b2*m1y) ) ;
  41. u1 = 'KCHT' $domtot 'VECT' 'SOMMET' (p1x + p1y) ;
  42. *
  43. rotu1 = 'KOPS' u1 'ROT' $domtot ;
  44. *
  45. mini1 = 'MINI' rotu1 ;
  46. maxi1 = 'MAXI' rotu1 ;
  47. testmode = 'VALE' 'MODE' ;
  48. 'SI' ('EGA' testmode 'AXIS') ;
  49. vtest1 = mini1 + maxi1 / 2. - (a2-b1) ;
  50. 'SINO' ;
  51. vtest1 = mini1 + maxi1 / 2. - (b1-a2) ;
  52. 'FINSI' ;
  53. test1 = faux ;
  54. 'SI' (('ABS' vtest1) < eps0) ; test1 = vrai ; 'FINSI' ;
  55. *
  56. 'SI' ('EGA' graph vrai) ;
  57. 'LIST' mini1 ;
  58. 'LIST' maxi1 ;
  59. 'LIST' (b1-a2) ;
  60. 'LIST' vtest1 ;
  61. 'LIST' test1 ;
  62. mod1 = 'MODE' domtot 'THERMIQUE' ;
  63. 'TRAC' ('KCHA' $domtot rotu1 'CHAM') mod1 'TITRE' 'Rotationnel' ;
  64. * 'TRAC' ('ELNO' $domtot rotu1) domtot 'TITRE' 'Rotationnel' ;
  65. 'FINSI' ;
  66. 'FINP' test1 ;
  67. *-------------------------------------------------------------------------
  68. *
  69. *
  70. * Maillage
  71. Lx = 1. ; Ly = 1. ;
  72. Nx = 6 ; Ny = 7 ;
  73. *
  74. p1 = 0. 0. ;
  75. p2 = Lx 0. ;
  76. p3 = Lx Ly ;
  77. p4 = 0. Ly ;
  78. *
  79. bord1 = 'DROI' Nx p1 p2 ;
  80. bord2 = 'DROI' Ny p2 p3 ;
  81. bord3 = 'DROI' Nx p3 p4 ;
  82. bord4 = 'DROI' Ny p4 p1 ;
  83. *
  84. domtot0 = 'DALL' bord1 bord2 bord3 bord4 'PLAN' ;
  85. _domtot = 'CHANGER' 'QUAF' domtot0 ;
  86. *
  87. * Tests en QUAF, MACRO et LINE pour les MODE AXIS et PLAN
  88. MotDiscr = 'QUAF' ;
  89. $domtot = 'MODELISER' _domtot 'NAVIER_STOKES' MotDiscr ;
  90. domtot = 'DOMA' $DOMTOT 'MAILLAGE' ;
  91. a0 = test2D ;
  92. MotDiscr = 'MACRO' ;
  93. $domtot = 'MODELISER' _domtot 'NAVIER_STOKES' MotDiscr ;
  94. domtot = 'DOMA' $DOMTOT 'MAILLAGE' ;
  95. a1 = test2D ;
  96. MotDiscr = 'LINE' ;
  97. $domtot = 'MODELISER' _domtot 'NAVIER_STOKES' MotDiscr ;
  98. domtot = 'DOMA' $DOMTOT 'MAILLAGE' ;
  99. a2 = test2D ;
  100. *
  101. 'OPTI' 'MODE' 'PLAN' ;
  102. *
  103. MotDiscr = 'QUAF' ;
  104. $domtot = 'MODELISER' _domtot 'NAVIER_STOKES' MotDiscr ;
  105. domtot = 'DOMA' $DOMTOT 'MAILLAGE' ;
  106. a3 = test2D ;
  107. MotDiscr = 'MACRO' ;
  108. $domtot = 'MODELISER' _domtot 'NAVIER_STOKES' MotDiscr ;
  109. domtot = 'DOMA' $DOMTOT 'MAILLAGE' ;
  110. a4 = test2D ;
  111. MotDiscr = 'LINE' ;
  112. $domtot = 'MODELISER' _domtot 'NAVIER_STOKES' MotDiscr ;
  113. domtot = 'DOMA' $DOMTOT 'MAILLAGE' ;
  114. a5 = test2D ;
  115. *
  116. * Test de non regression
  117. 'SI' a0 ; va0 = 'VRAI' ; 'SINO' ; va0 = 'FAUX' ; 'FINSI' ;
  118. 'SI' a1 ; va1 = 'VRAI' ; 'SINO' ; va1 = 'FAUX' ; 'FINSI' ;
  119. 'SI' a2 ; va2 = 'VRAI' ; 'SINO' ; va2 = 'FAUX' ; 'FINSI' ;
  120. 'SI' a3 ; va3 = 'VRAI' ; 'SINO' ; va3 = 'FAUX' ; 'FINSI' ;
  121. 'SI' a4 ; va4 = 'VRAI' ; 'SINO' ; va4 = 'FAUX' ; 'FINSI' ;
  122. 'SI' a5 ; va5 = 'VRAI' ; 'SINO' ; va5 = 'FAUX' ; 'FINSI' ;
  123. 'OPTI' 'ECHO' 0 ;
  124. 'SAUT' 5 ligne ;
  125. 'MESS' '-----------------------' ;
  126. 'MESS' 'MODE DISCR TEST' ;
  127. 'MESS' '-----------------------' ;
  128. 'MESS' 'QUAF AXIS ' va0 ;
  129. 'MESS' 'MACRO AXIS ' va1 ;
  130. 'MESS' 'LINE AXIS ' va2 ;
  131. 'MESS' '-----------------------' ;
  132. 'MESS' 'QUAF PLAN ' va3 ;
  133. 'MESS' 'MACRO PLAN ' va4 ;
  134. 'MESS' 'LINE PLAN ' va5 ;
  135. 'MESS' '-----------------------' ;
  136. test = a0 'ET' a1 'ET' a2 'ET' a3 'ET' a4 'ET' a5 ;
  137. *
  138. * Compte-rendu de fin et sortie
  139. 'SI' test ;
  140. 'ERRE' 0 ;
  141. 'SINO' ;
  142. 'ERRE' 5 ;
  143. 'FINSI' ;
  144. 'FIN' ;
  145.  
  146.  
  147.  
  148.  

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