Télécharger condense1.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : condense1.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. *
  5. * CAST TEST PORTANT SUR L'OPÉRATEUR SUPE
  6. *
  7. * Principe :
  8. * On considère une matrice formée de l'assemblage
  9. * d'une matrice de rigidité rig1
  10. * de matrice de blocage nuls cl1 et cl2
  11. * d'une matrie de masse massc1
  12. * d'une de blocage cl3
  13. * et un chargement formé de
  14. * de deplacement non nuls sur cl3: chpd0
  15. * de forces reparties : chpfi
  16. *
  17. * On resoud indirectement par condensation sur les
  18. * multiplicateurs de Lagrange de cl3 puis par
  19. * une redescente sur tous les neouds
  20. *
  21. * On résoud directement
  22. *
  23. *
  24. *
  25. * On teste en particulier la normalisation des
  26. * multiplicateur de Lagrange lorsque'ils sont maitres
  27. * en choissant un module d'YOUNG une densité élévés
  28. *
  29. * degay 20 02 97
  30. *
  31.  
  32.  
  33. *========== taille du maillage ======================
  34. m = 30 ;
  35. n = m ;
  36. E1 = 1.d15 ;
  37. r0 = 7.d6 ;
  38. graph = faux ;
  39. *========== maillage ================================
  40. 'OPTI' 'DIME' 2 'MODE' 'PLAN' 'DEFO';
  41. 'OPTI' 'ELEM' 'SEG2';
  42. p1 = 0. 0. ;
  43. p2 = 10. 0. ;
  44. li1 = d p1 n p2 ;
  45. opti elem qua4 ;
  46. su1 = tran li1 m ( 0. 1. ) ;
  47. ls1 = cote 3 su1 ;
  48. P3 = 'POINT' su1 'PROC' ( 10. 1. ) ;
  49. P4 = 'POINT' su1 'PROC' ( 0. 1. ) ;
  50. lr0 = cote 4 su1 ;
  51. lr10 = cote 2 su1 ;
  52.  
  53. * rotation du maillage de 45 pour avoir des conditions
  54. * aux limites composées
  55. 'DEPL' su1 'TOUR' 45. ( 0. 5. ) ;
  56.  
  57. *============== modle et matériau ===================
  58. mod1 = 'MODE' su1 mecanique elastique ;
  59. mod2 = 'MODE' ( li1 et ls1 ) mecanique elastique coq2 ;
  60. mat1 = 'MATE' mod1 'YOUN' E1 'NU' 0.3 'RHO' r0 ;
  61. mat2 = 'MATE' mod2 'YOUN' E1 'NU' 0.3 'RHO' r0 'EPAI' 0.05 ;
  62.  
  63. *=============== matrices classique ==================
  64. mas1 = 'MASS' mod1 mat1 ;
  65. mas2 = 'MASS' mod2 mat2 ;
  66. massc1 = mas1 'ET' mas2 ;
  67.  
  68. rig1 = 'RIGI' ( mod1 'ET' mod2 ) ( mat1 'ET' mat2 ) ;
  69.  
  70.  
  71. *============ matrice lumpée "elementaire" ============
  72.  
  73. masd12 = lump mod2 mat2 ;
  74.  
  75. *================= conditions aux limites =============
  76. cl1 = bloq p1 'UX' ;
  77. cl2 = 'SYMT' lr0 'DEPL' P1 P4 0.01 ;
  78. *
  79. cl3 = 'SYMT' lr10 'DEPL' P2 P3 0.01 ;
  80. * cl3 = 'BLOQ' lr10 'UX' ;
  81.  
  82. rigt1 = rig1 et cl1 et cl2 et massc1 ;
  83. rigt2 = rigt1 et cl3 ;
  84.  
  85. *================= Condensation ========================
  86. mailmult = 'EXTR' cl3 'MAIL' 'MULT' ;
  87. sup1 = 'SUPE' 'RIGI' rigt2 mailmult ;
  88. rigc1 = 'EXTR' sup1 'RIGI' ;
  89.  
  90. *================= Chargement ===========================
  91. * on impose un deplacement unité de lr10 selon l'axe de la plaque
  92. chpd0 = 'DEPI' cl3 1. ;
  93. * une alternative à DEPI est la commande suivante
  94. * chp0 = 'MANU' 'CHPO' ( mailmult ) 1 'FLX' 1. ;
  95.  
  96.  
  97. * on applique des forces sur le maillage
  98. chpfi = 'CHPOINT' 'ALEATOIRE' ( mas1 et mas2 ) ;
  99. chpfi = 'NOMC' chpfi ( 'MOTS' 'UX ' 'UY ' 'RZ ' )
  100. ( 'MOTS' 'FX ' 'FY ' 'MZ ' )
  101. 'NATU' 'DISCRET' ;
  102.  
  103.  
  104. *============ résolution indirecte ====================
  105. *
  106. chpfci = 'SUPE' sup1 'CHAR' (chpfi et chpd0) ;
  107.  
  108. depfl0 = 'RESO' rigc1 chpfci ;
  109.  
  110. * on redescend
  111.  
  112. dep0 = 'SUPER' 'DEPL' sup1 depfl0 (chpfi et chpd0);
  113. chpf0 = 'REAC' cl3 dep0;
  114.  
  115. *============== resolution directe =======================
  116. *
  117. dept1 = 'RESO' rigt2 ( chpd0 'ET' chpfi ) ;
  118. dep1 = 'ENLE' dept1 'LX' ;
  119. chpf1 = 'REAC' cl3 dept1 ;
  120.  
  121.  
  122. *=============== Comparaison ============================
  123. *
  124.  
  125. 'OPTI' 'ECHO' 0 ;
  126. * Erreur sur le deplacement
  127. deperr = dep0 - dep1 ;
  128. erx = 'EXCO' deperr 'UX' 'SCAL' / ( 'MAXI' 'ABS' ( 'EXCO' dep1 'UX'));
  129. errx = ( 'MAXI' 'ABS' erx) ;
  130. MESS 'Erreur sur X' ( errx * 100.) '%' ;
  131. ery = 'EXCO' deperr 'UY' 'SCAL' / ( 'MAXI' 'ABS' ( 'EXCO' dep1 'UY'));
  132. errY = ( 'MAXI' 'ABS' erY) ;
  133. MESS 'Erreur sur Y' ( erry * 100.) '%' ;
  134. erz = 'EXCO' deperr 'RZ' 'SCAL' ;
  135. errz = ( 'MAXI' 'ABS' erz) ;
  136. MESS 'Erreur sur RZ' (errz * 1.) 'difference absolue' ;
  137. errtot = ( erx ** 2 ) + ( ery ** 2 ) ;
  138. 'OPTI' 'ECHO' 1 ;
  139.  
  140. 'SI' graph ;
  141. 'TITR' 'Niveau d erreur' ;
  142. 'TRAC' errtot su1 ;
  143. 'FINSI' ;
  144.  
  145. * erreur sur les forces
  146. ferr = chpf1 '-' chpf0 ;
  147. errf = 'MAXI' 'ABS' ferr / ( 'MAXI' 'ABS' chpf0 ) ;
  148. 'MESS' 'Erreur sur les forces' ( errf '*' 100.) '%' ;
  149.  
  150. *=====================================
  151. * Code de fonctionnement
  152.  
  153. 'SI' ((errx > 1.D-9) 'OU' (erry > 1.D-9) 'OU' (errf > 1.D-9 ));
  154. 'ERREUR' 5 ;
  155. 'SINON'
  156. 'ERREUR' 0 ;
  157. 'FINSI' ;
  158.  
  159. 'FIN' ;
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  

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