Télécharger pvec2.dgibi

Retour à la liste

Numérotation des lignes :

  1. *
  2. ************************************************************************
  3. ************************************************************************
  4. * fichier : pvec2.dgibi
  5. *
  6. *
  7. 'SAUTER' 2 'LIGNE' ;
  8. 'MESSAGE' ' Execution de pvec2.dgibi' ;
  9. 'SAUTER' 2 'LIGNE' ;
  10. *
  11. interact = faux ;
  12. *
  13. ************************************************************************
  14. * NOM : PVEC2
  15. * DESCRIPTION : Cas-test pour l'opérateur PVEC avec des MCHAMLs
  16. * On vérifie en 2D :
  17. * | PVEC A |^2 = | A | ^ 2
  18. * | PSCA A (PVEC A) |^2 = 0
  19. * et en 3D l'égalité :
  20. * | PVEC A B |^2 + | PSCA A B |^2 = | A |^2 | B |^2
  21. *
  22. *
  23. * LANGAGE : GIBIANE-CAST3M
  24. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  25. * mél : stephane.gounand@cea.fr
  26. **********************************************************************
  27. * VERSION : v1, 30/09/2011, version initiale
  28. * HISTORIQUE : v1, 30/09/2011, création
  29. * HISTORIQUE : pvec2.dgibi inspire de pvec.dgibi (BP,2020)
  30. * HISTORIQUE :
  31. ************************************************************************
  32. *
  33. lpass = vrai ;
  34.  
  35. lnew = VRAI ;
  36. *lnew = FAUX ;
  37. * procedures de produit vectoriel temporaire
  38. * 2D
  39. DEBP @PVEC2 che1 lmo1 lmo3;
  40. che3 = (EXCO che1 (extr lmo1 2) (extr lmo3 1))
  41. - (EXCO che1 (extr lmo1 1) (extr lmo3 2));
  42. FINP che3;
  43. * 3D
  44. DEBP @PVEC3 che1 che2 lmo1 lmo2 lmo3;
  45. che3_1 = ( (EXCO che1 (extr lmo1 2) (extr lmo3 1))
  46. * (EXCO che2 (extr lmo2 3) (extr lmo3 1)) )
  47. - ( (EXCO che1 (extr lmo1 3) (extr lmo3 1))
  48. * (EXCO che2 (extr lmo2 2) (extr lmo3 1)) ) ;
  49. che3_2 = ( (EXCO che1 (extr lmo1 3) (extr lmo3 2))
  50. * (EXCO che2 (extr lmo2 1) (extr lmo3 2)) )
  51. - ( (EXCO che1 (extr lmo1 1) (extr lmo3 2))
  52. * (EXCO che2 (extr lmo2 3) (extr lmo3 2)) ) ;
  53. che3_3 = ( (EXCO che1 (extr lmo1 1) (extr lmo3 3))
  54. * (EXCO che2 (extr lmo2 2) (extr lmo3 3)) )
  55. - ( (EXCO che1 (extr lmo1 2) (extr lmo3 3))
  56. * (EXCO che2 (extr lmo2 1) (extr lmo3 3)) ) ;
  57. che3 = che3_1 et che3_2 et che3_3;
  58. FINP che3;
  59.  
  60. ************************************************************************
  61. * CAS 2D *
  62. ************************************************************************
  63.  
  64. 'OPTI' 'DIME' 2 'ELEM' 'QUA4' ;
  65.  
  66. ************************************************************************
  67. * maillage ET MODELE
  68. ************************************************************************
  69.  
  70. p0 = 0. 0. ; p1 = 1. 0.22 ;
  71. gen1 = 'DROIT' 2 p0 p1 ;
  72. s1 = 'TRANSLATION' gen1 2 (0. 1.) ;
  73. gen2 = 'COTE' 3 s1 ;
  74. s2 = 'TRANSLATION' gen2 2 (0. 1.) ;
  75. gen3 = 'COTE' 3 s2 ;
  76. s3 = 'TRANSLATION' gen3 2 (0. 1.) ;
  77. st = s1 'ET' s2 'ET' s3 ;
  78. *'TRACER' st ;
  79. *MODT = MODE st MECANIQUE ELASTIQUE ISOTROPE;
  80.  
  81. ************************************************************************
  82. * champs
  83. ************************************************************************
  84.  
  85. ux1 = 'BRUIT' 'BLAN' 'UNIF' 0. 1. (s1 'ET' s2) ;
  86. uy1 = 'BRUIT' 'BLAN' 'UNIF' 0. 1. (s1 'ET' s2) ;
  87. ux1 = chan 'CHAM' ux1 st;
  88. uy1 = chan 'CHAM' uy1 st;
  89.  
  90. vA = ('NOMC' 'UX' ux1) '+' ('NOMC' 'UY' uy1) ;
  91. *vB = ('NOMC' 'FX' ux2) '+' ('NOMC' 'FY' uy2) ;
  92.  
  93. ************************************************************************
  94. * operations vectorielles
  95. ************************************************************************
  96.  
  97. l1 = 'MOTS' 'UX' 'UY' ; l2 = 'MOTS' 'FX' 'FY' ;
  98. si lnew; veca = PVEC vA l1 l2 ;
  99. sinon; veca = @PVEC2 vA l1 l2 ;
  100. finsi;
  101. * opti donn 5;
  102. na = 'PSCAL' vA vA l1 l1 ;
  103. nveca = 'PSCAL' veca veca l2 l2 ;
  104. aveca = 'PSCAL' vA veca l1 l2 ;
  105. naveca = '**' aveca 2 ;
  106. *
  107. nna = 'MAXIMUM' ('-' na nveca) 'ABS' ;
  108. nnb = 'MAXIMUM' naveca ;
  109. *
  110. tolerr = 1.D-13 ;
  111. tst1 = 'EGA' nna 0. tolerr ;
  112. tst2 = 'EGA' nnb 0. tolerr ;
  113. *
  114. *opti donn 5;
  115.  
  116. ************************************************************************
  117. * CAS 3D *
  118. ************************************************************************
  119. 'OPTI' 'DIME' 3 ;
  120. *
  121. uz1 = 'BRUIT' 'BLAN' 'UNIF' 0. 1. (s1 'ET' s2) ;
  122. ux2 = 'BRUIT' 'BLAN' 'UNIF' 0. 1. (s1 'ET' s2 'ET' s3) ;
  123. uy2 = 'BRUIT' 'BLAN' 'UNIF' 0. 1. (s2 'ET' s3) ;
  124. uz2 = 'BRUIT' 'BLAN' 'UNIF' 0. 1. s2 ;
  125. uz1 = chan 'CHAM' uz1 st;
  126. ux2 = chan 'CHAM' ux2 st;
  127. uy2 = chan 'CHAM' uy2 st;
  128. uz2 = chan 'CHAM' uz2 st;
  129. *
  130. vA = ('NOMC' 'UX' ux1) '+' ('NOMC' 'UY' uy1) '+' ('NOMC' 'UZ' uz1) ;
  131. vB = ('NOMC' 'FX' ux2) '+' ('NOMC' 'FY' uy2) '+' ('NOMC' 'FZ' uz2) ;
  132. l1 = 'MOTS' 'UX' 'UY' 'UZ' ; l2 = 'MOTS' 'FX' 'FY' 'FZ' ;
  133. *
  134. si lnew; avecb = PVEC vA vB l1 l2 l1 ;
  135. sinon; avecb = @PVEC3 vA vB l1 l2 l1 ;
  136. finsi;
  137.  
  138. ascab = 'PSCAL' vA vB l1 l2 ;
  139.  
  140. navecb = 'PSCAL' avecb avecb l1 l1 ;
  141. nascab = '**' ascab 2 ;
  142. na = 'PSCAL' vA vA l1 l1 ;
  143. nb = 'PSCAL' vB vB l2 l2 ;
  144. nab = '*' na nb ;
  145. *
  146. res = nab '-' navecb '-' nascab ;
  147. nres = 'MAXIMUM' res 'ABS' ;
  148. tst3 = 'EGA' nnb 0. tolerr ;
  149. tst = tst1 'ET' tst2 'ET' tst3 ;
  150.  
  151. opti echo 0;
  152.  
  153. 'MESSAGE' ('CHAINE' 'Test :') ;
  154. 'MESSAGE' ('CHAINE' ' nna = ' nna ) ;
  155. 'MESSAGE' ('CHAINE' ' nnb = ' nnb ) ;
  156. 'MESSAGE' ('CHAINE' ' nres = ' nres) ;
  157. 'SI' tst ;
  158. 'MESSAGE' 'Test OK' ;
  159. 'SINON' ;
  160. 'MESSAGE' '!!! Test not passed ' ;
  161. 'FINSI' ;
  162. lpass = lpass 'ET' tst ;
  163. *
  164. 'SAUTER' 2 'LIGNE' ;
  165. 'SI' lpass ;
  166. 'MESSAGE' 'Tout sest bien passe' ;
  167. 'SINON' ;
  168. 'MESSAGE' 'Il y a eu des erreurs' ;
  169. 'FINSI' ;
  170. 'SAUTER' 2 'LIGNE' ;
  171. 'SI' interact ;
  172. 'OPTION' 'DONN' 5 'ECHO' 1 ;
  173. 'FINSI' ;
  174. 'SI' ('NON' lpass) ;
  175. 'ERREUR' 5 ;
  176. 'FINSI' ;
  177.  
  178. 'FIN' ;
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  

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