Télécharger ortho-vari-coq4.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : ortho-vari-coq4.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4.  
  5. *** Options ...
  6.  
  7. opti dime 3 mode trid ;
  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 UZ RX RY RZ ;
  25. motsdua = mots FX FY FZ MX MY MZ ;
  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 0 ;
  38. p2 = L 0 0 ;
  39. p3 = L L 0 ;
  40. p4 = 0 L 0 ;
  41.  
  42. *** Maillage ...
  43.  
  44. su1 = manu qua4 p1 p2 p3 p4 ;
  45.  
  46. *** Champs de déplacement tests ...
  47.  
  48. chpox chpoy chpoz = 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) et
  53. (nomc UZ chpo0) et (nomc RX chpo0) et
  54. (nomc RY chpo0) et (nomc RZ chpo0) ;
  55. tabdepl . 2 = (epsilon * (nomc UX chpoy)) et (nomc UY chpo0) et
  56. (nomc UZ chpo0) et (nomc RX chpo0) et
  57. (nomc RY chpo0) et (nomc RZ chpo0) ;
  58.  
  59. *** Boucle sur différents déplacements imposés ...
  60.  
  61. opti echo 0 ;
  62. repeter surdepl (dime tabdepl) ;
  63.  
  64. mess '===================================' ;
  65. mess 'Champ de déplacement N°' &surdepl ;
  66.  
  67. depl1 = tabdepl . &surdepl ;
  68.  
  69. *** Boucle sur différents angles du repère d'orthotropie ...
  70.  
  71. angle = 0. ;
  72. repeter surangl 12 ;
  73.  
  74. angle = angle + 7. ;
  75. mess '---------------------------------' ;
  76. mess ' Angle =' angle ;
  77.  
  78. *** Modèle + matériau ...
  79.  
  80. dir1 = (cos angle) (sin angle) 0. ;
  81. mo1 = mode su1 mecanique elastique orthotrope coq4 ;
  82. ma1 = mate mo1 DIRECTION dir1 PARALLELE YG1 val_e1
  83. YG2 val_e2 NU12 val_nu12 G12 val_g12 G23 val_g23
  84. G13 val_g13 EPAI val_ep ;
  85. mh1 = hook mo1 ma1 ;
  86. ri1 = rigi mo1 ma1 ;
  87.  
  88. *** "Calculs" ...
  89.  
  90. epsi1 = epsi mo1 ma1 depl1 ;
  91.  
  92. sigma1s = sigm mo1 ma1 depl1 ;
  93. sigma1e = elas mo1 epsi1 ma1 ;
  94. sigma1h = mh1 * epsi1 mo1 ;
  95.  
  96. test12 = abs (sigma1s - sigma1e) ;
  97. test23 = abs (sigma1e - sigma1h) ;
  98.  
  99. si((maxi test12) > 1.e-8) ;
  100. mess 'Erreur !!! Différence entre opérateurs ELAS et SIGM' ;
  101. erre 5 ;
  102. finsi ;
  103.  
  104. si((maxi test23) > 1.e-8) ;
  105. mess 'Erreur !!! Différence entre opérateurs ELAS et HOOK' ;
  106. erre 5 ;
  107. finsi ;
  108.  
  109. dener = (ener mo1 epsi1 sigma1s) / 2 ;
  110. * ATTENTION !!! Dans cette intégrale le champ des CARACTERISTIQUES
  111. * n'est pas utilisé car les efforts sont déja intégrés dans l'épaisseur
  112. * de la coque, il ne reste que l'intégrale sur la surface ...
  113. entot1 = intg dener mo1 ;
  114. mess 'Énergie de déformation : /// sigma * epsilon =' entot1 ;
  115.  
  116. fr_kxu = ri1 * depl1 ;
  117. entot2 = (xty depl1 fr_kxu motspri motsdua) / 2 ;
  118. mess 'Énergie de déformation : (K * u) . u =' entot2 ;
  119.  
  120. fr_bsig = bsig mo1 sigma1s ma1 ;
  121. entot3 = (xty depl1 fr_bsig motspri motsdua) / 2 ;
  122. mess 'Énergie de déformation : (/// B^T * sigma) . u =' entot3 ;
  123.  
  124. test_fr = maxi (abs (fr_kxu - fr_bsig)) ;
  125. si(test_fr > 1.e-5) ;
  126. mess 'ERREUR !!! Forces de réaction incorrectes !!!' ;
  127. erre 5 ;
  128. finsi ;
  129.  
  130. cosa1 = cos angle ;
  131. sina1 = sin angle ;
  132. cosa2 = cosa1 * cosa1 ;
  133. sina2 = sina1 * sina1 ;
  134. cosa4 = cosa2 * cosa2 ;
  135. sina4 = sina2 * sina2 ;
  136. si(ega &surdepl 1) ;
  137. Q11bar = (Q11*cosa4) + (2*cosa2*sina2*(Q12+(2*Q66))) +
  138. (Q22*sina4) ;
  139. en_ana = Q11bar * epsilon*epsilon * L*L * val_ep / 2 ;
  140. finsi ;
  141. si(ega &surdepl 2) ;
  142. Q66bar = (Q66*(cosa4+sina4)) + (sina2*cosa2*(Q11+Q22-(2*Q12)
  143. -(2*Q66))) ;
  144. en_ana = Q66bar * epsilon*epsilon * L*L * val_ep / 2 ;
  145. finsi ;
  146. mess 'Énergie donnée par la formule analytique =' en_ana ;
  147.  
  148. test12 = abs (entot1 - entot2) ;
  149. test23 = abs (entot2 - entot3) ;
  150. test34 = abs (entot3 - en_ana) ;
  151. * list test12 ;
  152. * list test23 ;
  153. * list test34 ;
  154. testgl = (test12 > 1.e-10) ou (test23 > 1.e-10) ou
  155. (test34 > 1.e-10) ;
  156. si(testgl) ;
  157. mess 'ERREUR !!! Écart intolérable !!!' ;
  158. erre 5 ;
  159. finsi ;
  160.  
  161. *** Fin de la boucle sur les angles ...
  162.  
  163. fin surangl ;
  164.  
  165. *** Fin de la boucle sur les déplacements ...
  166.  
  167. fin surdepl ;
  168.  
  169. *** Bye ...
  170.  
  171. saut 1 lign ;
  172. opti echo 1 ;
  173. fin ;
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  

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