Télécharger ortho-vari-2D.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : ortho-vari-2D.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4.  
  5. *** Options ...
  6.  
  7. opti dime 2 mode plan cont ;
  8. opti epsilon lineaire;
  9.  
  10. *** Paramètres ...
  11.  
  12. L = 1.0 ;
  13. epsilon = 0.001 ;
  14. val_ep = 0.01 ;
  15. val_e1 = 1.e+11 ;
  16. val_e2 = 1.e+10 ;
  17. val_e3 = 5.e+10 ;
  18. val_nu12 = 0.3 ;
  19. val_nu23 = 0.2 ;
  20. val_nu13 = 0.25 ;
  21. val_g12 = 1.e+9 ;
  22. val_g23 = 5.e+9 ;
  23. val_g13 = 3.e+9 ;
  24.  
  25. motspri = mots UX UY ;
  26. motsdua = mots FX FY ;
  27.  
  28. *** Coefficients de la matrice de Hooke en repère d'orthotropie ...
  29.  
  30. denomc = 1.0 - (val_nu12*val_nu12*val_e2/val_e1) ;
  31. Q11 = val_e1 / denomc ;
  32. Q12 = val_nu12 * val_e2 / denomc ;
  33. Q22 = val_e2 / denomc ;
  34. Q66 = val_g12 ;
  35.  
  36. *** Points ...
  37.  
  38. p1 = 0 0 ;
  39. p2 = L 0 ;
  40. p3 = L L ;
  41. p4 = 0 L ;
  42.  
  43. *** Maillage ...
  44.  
  45. su1 = manu qua4 p1 p2 p3 p4 ;
  46.  
  47. *** Champs de déplacement tests ...
  48.  
  49. chpox chpoy = coor su1 ;
  50. chpo0 = manu chpo su1 1 scal 0 nature diffus ;
  51.  
  52. tabdepl = table ;
  53. tabdepl . 1 = (epsilon * (nomc UX chpox)) et (nomc UY chpo0) ;
  54. tabdepl . 2 = (epsilon * (nomc UX chpoy)) et (nomc UY chpo0) ;
  55.  
  56. *** Boucle sur différents déplacements imposés ...
  57.  
  58. opti echo 0 ;
  59. repeter surdepl (dime tabdepl) ;
  60.  
  61. mess '===================================' ;
  62. mess 'Champ de déplacement N°' &surdepl ;
  63.  
  64. depl1 = tabdepl . &surdepl ;
  65.  
  66. *** Boucle sur différents angles du repère d'orthotropie ...
  67.  
  68. angle = 0. ;
  69. repeter surangl 12 ;
  70.  
  71. angle = angle + 7. ;
  72. mess '---------------------------------' ;
  73. mess ' Angle =' angle ;
  74.  
  75. *** Modèle + matériau ...
  76.  
  77. dir1 = (cos angle) (sin angle) ;
  78. mo1 = mode su1 mecanique elastique orthotrope ;
  79. ma1 = mate mo1 DIRECTION dir1 PARALLELE YG1 val_e1
  80. YG2 val_e2 YG3 val_e3 NU12 val_nu12 NU23 val_nu23
  81. NU13 val_nu13 G12 val_g12 DIM3 val_ep ;
  82. mh1 = hook mo1 ma1 ;
  83. ri1 = rigi mo1 ma1 ;
  84.  
  85. *** "Calculs" ...
  86.  
  87. epsi1 = epsi mo1 ma1 depl1 ;
  88.  
  89. sigma1s = sigm mo1 ma1 depl1 ;
  90. sigma1e = elas mo1 epsi1 ma1 ;
  91. sigma1h = mh1 * epsi1 mo1 ;
  92.  
  93. test12 = abs (sigma1s - sigma1e) ;
  94. test23 = abs (sigma1e - sigma1h) ;
  95.  
  96. si((maxi test12) > 1.5e-8) ;
  97. mess 'Erreur !!! Différence entre opérateurs ELAS et SIGM' ;
  98. erre 5 ;
  99. finsi ;
  100.  
  101. si((maxi test23) > 1.e-8) ;
  102. mess 'Erreur !!! Différence entre opérateurs ELAS et HOOK' ;
  103. erre 5 ;
  104. finsi ;
  105.  
  106. dener = (ener mo1 epsi1 sigma1s) / 2 ;
  107. entot1 = intg dener mo1 ma1 ;
  108. mess 'Énergie de déformation : /// sigma * epsilon =' entot1 ;
  109.  
  110. fr_kxu = ri1 * depl1 ;
  111. entot2 = (xty depl1 fr_kxu motspri motsdua) / 2 ;
  112. mess 'Énergie de déformation : (K * u) . u =' entot2 ;
  113.  
  114. fr_bsig = bsig mo1 sigma1s ma1 ;
  115. entot3 = (xty depl1 fr_bsig motspri motsdua) / 2 ;
  116. mess 'Énergie de déformation : (/// B^T * sigma) . u =' entot3 ;
  117.  
  118. test_fr = maxi (abs (fr_kxu - fr_bsig)) ;
  119. si(test_fr > 1.e-5) ;
  120. mess 'ERREUR !!! Forces de réaction incorrectes !!!' ;
  121. erre 5 ;
  122. finsi ;
  123.  
  124. cosa1 = cos angle ;
  125. sina1 = sin angle ;
  126. cosa2 = cosa1 * cosa1 ;
  127. sina2 = sina1 * sina1 ;
  128. cosa4 = cosa2 * cosa2 ;
  129. sina4 = sina2 * sina2 ;
  130. si(ega &surdepl 1) ;
  131. Q11bar = (Q11*cosa4) + (2*cosa2*sina2*(Q12+(2*Q66))) +
  132. (Q22*sina4) ;
  133. en_ana = Q11bar * epsilon*epsilon * L*L * val_ep / 2 ;
  134. finsi ;
  135. si(ega &surdepl 2) ;
  136. Q66bar = (Q66*(cosa4+sina4)) + (sina2*cosa2*(Q11+Q22-(2*Q12)
  137. -(2*Q66))) ;
  138. en_ana = Q66bar * epsilon*epsilon * L*L * val_ep / 2 ;
  139. finsi ;
  140. mess 'Énergie donnée par la formule analytique =' en_ana ;
  141.  
  142. test12 = abs (entot1 - entot2) ;
  143. test23 = abs (entot2 - entot3) ;
  144. test34 = abs (entot3 - en_ana) ;
  145. * list test12 ;
  146. * list test23 ;
  147. * list test34 ;
  148. testgl = (test12 > 1.e-10) ou (test23 > 1.e-10) ou
  149. (test34 > 1.e-10) ;
  150. si(testgl) ;
  151. mess 'ERREUR !!! Écart intolérable !!!' ;
  152. erre 5 ;
  153. finsi ;
  154.  
  155. *** Fin de la boucle sur les angles ...
  156.  
  157. fin surangl ;
  158.  
  159. *** Fin de la boucle sur les déplacements ...
  160.  
  161. fin surdepl ;
  162.  
  163. *** Bye ...
  164.  
  165. saut 1 lign ;
  166. opti echo 1 ;
  167. fin ;
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  

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