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

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