Télécharger flam4.dgibi

Retour à la liste

Numérotation des lignes :

  1. ************************************************************************
  2. *
  3. * Flambage d'une plaque carree sous deformation de cisaillement
  4. *
  5. * Y ^
  6. * |
  7. * |
  8. * p2+----------------+ ^ F
  9. * >| | |
  10. * | |
  11. * >| | ^ F
  12. * | | |
  13. * >| |
  14. * | | ^ F
  15. * >| | |
  16. * p1+----------------+--------> X
  17. *
  18. *
  19. * introduit dans la base des cas-tests en mai 2019
  20. *
  21. * la matrice Ksigma n'est pas definie>0
  22. * VIBR doit en tenir compte pour la numerotation des modes
  23. * on teste la charge critique >0 ou <0 et le numero de mode
  24. *
  25. ************************************************************************
  26.  
  27. ************************************************************************
  28. * OPTIONS
  29. ************************************************************************
  30.  
  31. opti epsi 'LINEAIRE';
  32. opti dime 3 elem qua4 ;
  33. * GRAPH = VRAI; opti TRAC PSC;
  34. GRAPH = FAUX;
  35.  
  36.  
  37. ************************************************************************
  38. * MAILLAGE
  39. ************************************************************************
  40.  
  41. p1 = 0 0 0 ;
  42. p2 = 0 1 0;
  43. l1 = p1 DROI 10 p2 ;
  44. sur1 = tran l1 (1 0 0) 10 ;
  45. l1 = coul l1 ROUG ;
  46. l2 = (cote 2 sur1) coul VERT;
  47. l3 = (cote 3 sur1) coul BLEU;
  48. l4 = (cote 4 sur1) coul JAUN;
  49. SI GRAPH;
  50. trac (sur1 et l1 et l2 et l3 et l4);
  51. FINSI;
  52.  
  53.  
  54. ************************************************************************
  55. * MODELE, MATERIAU, BLOCAGES, CHARGEMENT
  56. ************************************************************************
  57.  
  58. mod1 = mode sur1 mecanique coq4;
  59. *sur1 = chan sur1 tri3 ; mod1 = mode sur1 mecanique dst;
  60. mat1 = mate mod1 youn 2.E11 nu 0. epai .1 rho 1000.;
  61.  
  62. blo1 = bloq l1 ux uy uz rx ry ;
  63. blo2 = bloq l3 ux uz rx ry ;
  64.  
  65. * force selon Y
  66. f1 = force l3 (0 1 0) ;
  67.  
  68.  
  69. ************************************************************************
  70. * MISE EN PRECONTRAINTE ELASTIQUE
  71. ************************************************************************
  72.  
  73. rig1 = rigi mod1 mat1 ;
  74. rigt = rig1 et blo1 et blo2 ;
  75.  
  76. dep1 = reso rigt f1 ;
  77. def1 = defo dep1 (sur1 et l1) ;
  78. SI GRAPH; trac def1 ; FINSI;
  79.  
  80. sig1 = sigm mod1 mat1 dep1 ;
  81. ksig1 = ksig sig1 mod1 mat1 'FLAM' ;
  82. ksig11 = -1. * ksig1;
  83.  
  84. nvpneg1 = DIAG ksig11;
  85. mess '>>> Ksigma n est pas definie positive ('nvpneg1' v.p. <0)' ;
  86. mess '>>> dimension =' (dime ksig11) (dime rigt);
  87.  
  88.  
  89. ************************************************************************
  90. * CALCUL DE FLAMBAGE (avec 3 algorithmes differents)
  91. ************************************************************************
  92.  
  93. SI GRAPH;
  94. mopost = MOTS 'TABL' 'DEFO' 'DEF0';
  95. SINON;
  96. mopost = MOTS 'TABL';
  97. FINSI;
  98. nmod = 8;
  99.  
  100. TITR 'VIBR IRAM';
  101. tab2_iram =vibr iram 0. nmod rigt ksig11;
  102. POSTVIBR tab2_iram mopost;
  103.  
  104. TITR 'VIBR SIMUL';
  105. tab2_simu =vibr simu 0. nmod rigt ksig11;
  106. POSTVIBR tab2_simu mopost;
  107.  
  108. TITR 'VIBR PROCH';
  109. tab2_proc =vibr proc (prog 0.) (lect nmod) rigt ksig11;
  110. POSTVIBR tab2_proc mopost;
  111.  
  112.  
  113. ************************************************************************
  114. * TEST DE NON REGRESSION
  115. ************************************************************************
  116. * pour les 3 algos de VIBR
  117. * on teste 2 numeros de mode et 2 frequences propres
  118.  
  119. * on rassemble les resultats dans 1 seule table pour automatiser
  120. TALGO = TABL;
  121. TALGO . 1 = tab2_iram . 'MODES';
  122. TALGO . 2 = tab2_simu . 'MODES';
  123. TALGO . 3 = tab2_proc . 'MODES';
  124.  
  125. * listes pour les modes 4 et 5
  126. pr_num4 = lect;
  127. pr_frq4 = prog;
  128. pr_num5 = lect;
  129. pr_frq5 = prog;
  130.  
  131. * on devrait etre parfaitement symetrique du fait du pb en cisaillement
  132. repe BALGO 3;
  133. pr_num4 = pr_num4 et TALGO . &BALGO . 4 . 'NUMERO_MODE';
  134. pr_frq4 = pr_frq4 et TALGO . &BALGO . 4 . 'FREQUENCE';
  135. pr_num5 = pr_num5 et TALGO . &BALGO . 5 . 'NUMERO_MODE';
  136. pr_frq5 = pr_frq5 et TALGO . &BALGO . 5 . 'FREQUENCE';
  137. fin BALGO;
  138.  
  139. mess '>>>'; LIST pr_num4;
  140. * attendu sur linux64: 183 183 183
  141. mess '>>>'; LIST pr_frq4;
  142. * attendu: -5232.8 -5232.8 -5232.8
  143. mess '>>>'; LIST pr_num5;
  144. * attendu sur linux64: 184 184 184
  145. mess '>>>'; LIST pr_frq5;
  146. * attendu: 5232.8 5232.8 5232.8
  147.  
  148. NBERR = 0;
  149.  
  150. SI ((MAXI pr_num4) NEG nvpneg1); NBERR = NBERR + 1; FINSI;
  151. SI ((MINI pr_num4) NEG nvpneg1); NBERR = NBERR + 1; FINSI;
  152. SI ((MAXI pr_num5) NEG (nvpneg1 + 1)); NBERR = NBERR + 1; FINSI;
  153. SI ((MINI pr_num5) NEG (nvpneg1 + 1)); NBERR = NBERR + 1; FINSI;
  154.  
  155. err4 = MAXI 'ABS' ((pr_frq4 + 5232.8) / 5232.8);
  156. err5 = MAXI 'ABS' ((pr_frq5 - 5232.8) / 5232.8);
  157. SI (err4 > 1.E-5); NBERR = NBERR + 1; FINSI;
  158. SI (err5 > 1.E-5); NBERR = NBERR + 1; FINSI;
  159.  
  160. * erreur ou pas
  161. MESS '>>> Il y a ' NBERR ' erreur(s)';
  162. SI (NBERR >EG 1);
  163. ERRE 5;
  164. FINSI;
  165.  
  166.  
  167. FIN ;
  168.  
  169.  
  170.  

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