Télécharger test_kops_ninc.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : test_kops_ninc.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. ************************************************************************
  5. * NOM : TEST_KOPS_NINC
  6. * DESCRIPTION : On vérifie que KOPS donne des résultats corrects
  7. * avec les options extrninc et extrinco
  8. *
  9. *
  10. * LANGAGE : GIBIANE-CAST3M
  11. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  12. * mél : gounand@semt2.smts.cea.fr
  13. **********************************************************************
  14. * VERSION : v1, 15/04/2005, version initiale
  15. * HISTORIQUE : v1, 15/04/2005, création
  16. * HISTORIQUE :
  17. * HISTORIQUE :
  18. ************************************************************************
  19. * Prière de PRENDRE LE TEMPS de compléter les commentaires
  20. * en cas de modification de ce sous-programme afin de faciliter
  21. * la maintenance !
  22. ************************************************************************
  23. *
  24. interact = FAUX ;
  25. graph = FAUX ;
  26. *
  27. *
  28. 'DEBPROC' FOIS ;
  29. 'ARGUMENT' matk*'MATRIK' ;
  30. 'ARGUMENT' ch*'CHPOINT' ;
  31. 'RESPRO' ('KOPS' matk '*' ch) ;
  32. 'FINPROC' ;
  33. *
  34. *
  35. 'OPTION' 'DIME' 2 'ELEM' QUA8 ;
  36. *
  37. * Maillage quelconque
  38. *
  39. pA = 0. 0. ; pB = 1. 0. ; pC = 1. 1. ; pD = 0. 1. ;
  40. l1 = pA 'DROIT' 2 pB ;
  41. l2 = pB 'DROIT' 4 pC ;
  42. l3 = pC 'DROIT' 3 pD ;
  43. l4 = pD 'DROIT' 5 pA ;
  44. mt = 'SURFACE' (l1 'ET' l2 'ET' l3 'ET' l4) ;
  45. _mt = 'CHANGER' mt 'QUAF' ;
  46. $mt = 'MODELISER' _mt 'NAVIER_STOKES' 'QUAF' ;
  47. *
  48. * Construction d'un matrice (ici de laplacien + blocage)
  49. *
  50. rv = 'EQEX' 'OPTI' 'EF' 'IMPL'
  51. 'ZONE' $mt 'OPER' 'LAPN' 1. 'INCO' 'T' ;
  52. rv . 'INCO' = 'TABLE' 'INCO' ;
  53. rv . 'INCO' . 'T' = 'KCHT' $mt 'SCAL' 'SOMMET' 0.D0 ;
  54. dummy mlapn = 'LAPN' (rv . '1LAPN') ;
  55. *mat1 = GLAPN _mt 'LINE' 'T' 'QUAF' 'Q' 'QUAF' 1.D0 ;
  56. mablo = 'BLOQUE' 'T' l4 ;
  57. mmt = 'MOTS' 'T' ;
  58. mmq = 'MOTS' 'Q' ;
  59. matot = 'ET' ('KOPS' 'CHANINCO' mlapn mmt mmt mmt mmq)
  60. ('KOPS' 'RIMA' mablo) ;
  61. *
  62. * Extraction des noms d'inconnues
  63. *
  64. * option n'existe plus
  65. *lisp lisd = 'KOPS' 'EXTRNINC' matot ;
  66. lisp = 'EXTR' matot 'COMP' ;
  67. lisd = 'EXTR' matot 'COMP' 'DUAL' ;
  68. *
  69. * Vérification
  70. *
  71. ok11 = ('EGA' ('EXTRAIRE' lisp 1) 'T') ;
  72. ok12 = ('EGA' ('EXTRAIRE' lisp 2) 'LX') ;
  73. ok13 = ('EGA' ('EXTRAIRE' lisd 1) 'Q') ;
  74. ok14 = ('EGA' ('EXTRAIRE' lisd 2) 'FLX') ;
  75. test1 = ok11 'ET' ok12 'ET' ok13 'ET' ok14 ;
  76. *
  77. * Construction d'une table avec toutes les sous-matrices
  78. *
  79. tabmat = 'TABLE' ;
  80. idx = 0 ;
  81. dlisp = 'DIME' lisp ;
  82. dlisd = 'DIME' lisd ;
  83. 'MESSAGE' ('CHAINE' 'dlisp=' dlisp) ;
  84. 'MESSAGE' ('CHAINE' 'dlisd=' dlisd) ;
  85.  
  86. 'REPETER' ilisp dlisp ;
  87. 'REPETER' ilisd dlisd ;
  88. idx = '+' idx 1 ;
  89. 'MESSAGE' ('CHAINE' 'idx=' idx) ;
  90. 'MESSAGE' ('CHAINE' 'ilisp=' &ilisp) ;
  91. 'MESSAGE' ('CHAINE' 'ilisd=' &ilisd) ;
  92. lmp = 'MOTS' ('EXTRAIRE' lisp &ilisp) ;
  93. lmd = 'MOTS' ('EXTRAIRE' lisd &ilisd) ;
  94. tabmat . idx = 'KOPS' 'EXTRINCO' matot lmp lmd ;
  95. 'FIN' ilisd ;
  96. 'FIN' ilisp ;
  97. *
  98. * Vérification
  99. *
  100. chtes = '+' ('MANUEL' 'CHPO' l4 1 'LX' 3.14D0)
  101. ('MANUEL' 'CHPO' mt 1 'T' 1.707D0) ;
  102. ch1 = FOIS matot chtes ;
  103. *
  104. 'REPETER' iidx idx ;
  105. 'SI' ('EGA' &iidx 1) ;
  106. ch2 = FOIS (tabmat . &iidx) chtes ;
  107. 'SINON' ;
  108. ch2 = '+' (FOIS (tabmat . &iidx) chtes) ch2 ;
  109. 'FINSI' ;
  110. 'FIN' iidx ;
  111. test2 = 'MAXIMUM' ('-' ch2 ch1) 'ABS' ;
  112. *
  113. ipoint1 = 'KOPS' 'POINTEUR' matot ;
  114. ipoint2 = 'KOPS' 'POINTEUR' tabmat ;
  115. ipoint3 = 'KOPS' 'POINTEUR' (tabmat . 1) ;
  116. ok21 = 'ET' ('EGA' ('TYPE' ipoint1) 'ENTIER') ('>' ipoint1 0) ;
  117. ok22 = 'ET' ('EGA' ('TYPE' ipoint2) 'ENTIER') ('>' ipoint2 0) ;
  118. ok23 = 'ET' ('EGA' ('TYPE' ipoint3) 'ENTIER') ('>' ipoint3 0) ;
  119. test3 = ok21 'ET' ok22 'ET' ok23 ;
  120. *
  121. 'MESSAGE' ('CHAINE' 'test1 = ' test1*25) ;
  122. 'MESSAGE' ('CHAINE' 'test2 = ' test2) ;
  123. 'MESSAGE' ('CHAINE' 'test3 = ' test3/25) ;
  124. ok1 = test1 ;
  125. ok2 = ('<' test2 1.D-12) ;
  126. ok3 = test3 ;
  127. *
  128. 'SI' interact ;
  129. 'OPTION' 'DONN' 5 ;
  130. 'FINSI' ;
  131. 'SI' ('NON' (ok1 'ET' ok2 'ET' ok3)) ;
  132. 'ERREUR' 5 ;
  133. 'SINON' ;
  134. 'MESSAGE' 'Tout sest bien passe' ;
  135. 'FINSI' ;
  136. *
  137. * End of dgibi file TEST_KOPS_NINC
  138. *
  139. 'FIN' ;
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  

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