Télécharger HHO_Membrane_Cook_HPP_Elas.dgibi

Retour à la liste

Numérotation des lignes :

  1. * Fichier HHO_Membrane_Cook_HPP_Elas.dgibi
  2. *------------------------------------------------------------------------------*
  3. * Test : Membrane de Cook - Elasticite - HPP - Deformations/contraintes Planes *
  4. *------------------------------------------------------------------------------*
  5. * Unites utilisees : S.I. (m, N, kg, Pa)
  6.  
  7. 'OPTION' 'ECHO' 0 ;
  8. *=========== Options de calcul = Modifiables par l'utilisateur ==============*
  9.  
  10. * Option pour avoir un maillage fin
  11. b_mfin = VRAI ;
  12.  
  13. * Nombre d'elements pour definir le maillage de la membrane :
  14. 'SI' b_mfin ;
  15. N_h = 30 ;
  16. 'SINON' ;
  17. N_h = 5 ;
  18. 'FINSI' ;
  19.  
  20. * Type d'element souhaite :
  21. * Pour s_typelt = MOT a choisir parmi 'TRI3' 'QUA4' 'TRI6' 'QUA8' 'POLY'
  22. s_typelt = 'MOT' 'POLY' ;
  23.  
  24. * Pour passer en DEFOrmations ou CONTraintes PLANES
  25. * Pour s_modcalc = MOT a choisir parmi 'CONT' 'DEFO'
  26. s_modcalc = 'MOT' 'DEFO' ;
  27.  
  28. * Proprietes elastiques du materiau (en USI) :
  29. Mat_Youn = 1.125 ; Mat_Pois = 0.49999999 ;
  30. * Mat_Lam = 7.5E+6 ; Mat_Mu = 0.375 ; <--> E = 1.124999981250001 & nu = 0.49999997500000126
  31.  
  32. * Resultante en cisaillement imposee sur le cote BC (en N) :
  33. RCis_BC = 1. ;
  34.  
  35. * Option de tracer (fichier Postscript) :
  36. b_trac = FAUX ;
  37.  
  38. *=========== FIN des options modifiables par l'utilisateur ===================*
  39.  
  40. *=========== DEBUT Quelques variables d'environnement ========================*
  41. str_ver = 'VENV' 'CASTEM_VERSION' ;
  42. 'SI' ('EGA' str_ver ' ') ;
  43. * Pour la version du jour
  44. str_ver = 99999 ;
  45. 'SINON' ;
  46. * Pour les versions officielles
  47. str_ver = 'ENTI' str_ver ;
  48. 'FINSI' ;
  49.  
  50. str_hho = 'VENV' 'CASTEM_HHO_ROOT' ;
  51. 'SI' ('EGA' str_hho ' ') ;
  52. ** 'MESS' '--> INHIBITION TEST - Cast3M' str_ver ' <--' ;
  53. 'MESS' ;
  54. 'MESS' '!!!----- Version de Cast3M sans HHO -----!!!' ;
  55. 'MESS' '!!! Variable CASTEM_HHO_ROOT non definie !!!' ;
  56. 'MESS' '!!! Cas-test non execute - Fin immediate !!!';
  57. 'FIN' ;
  58. 'FINSI' ;
  59.  
  60. str_z = 'VENV' 'NEL_H' ;
  61. 'SI' ('NEG' str_z ' ') ;
  62. n_z = 'ENTI' str_z ;
  63. N_h = n_z ;
  64. 'FINSI' ;
  65.  
  66. str_z = 'VENV' 'TYPE_EF' ;
  67. 'SI' ('NEG' str_z ' ') ;
  68. str_z = 'CHANGER' 'MAJU' str_z ;
  69. s_typelt = 'MOT' str_z ;
  70. 'FINSI' ;
  71. *=========== FIN Quelques variables d'environnement ==========================*
  72.  
  73. *=========== DEBUT Quelques verifications prealables =========================*
  74.  
  75. s_typEF = s_typelt ;
  76. lmo_EF = 'MOTS' 'TRI3' 'QUA4' 'TRI6' 'QUA8' 'POLY' ;
  77. 'SI' ('NON' ('EXISTE' lmo_EF s_typEF)) ;
  78. 'ERREUR' '* Type d element non prevu !' ;
  79. 'FINSI' ;
  80.  
  81. N_h = 'ENTIER' N_h ;
  82. 'SI' ('<' N_h 1) ;
  83. 'ERREUR' '* Nombre d elements N_h incorrect (ENTIER >0)' ;
  84. 'FINSI' ;
  85.  
  86. *=========== FIN Quelques verifications prealables ===========================*
  87.  
  88. * Pour un realiser un maillage regulier (DALLER) ou libre (SURF)
  89. * En cas de 'POLY', le maillage sera effectue par SURF meme si regulier.
  90. s_mail = 'MOT' '_REGU_' ;
  91. *s_mail = 'MOT' '_LIBR_' ;
  92.  
  93. * Nombre d'elements sur la ligne AB :
  94. NE_X_B = N_h ;
  95. * Nombre d'elements sur la ligne BC :
  96. NE_Y_D = N_h ;
  97. 'SI' (('EGA' s_typelt 'POLY') 'ET' ('NON' ('MULT' NE_Y_D 2))) ;
  98. 'SI' ('<' NE_Y_D 2) ; NE_Y_D = 2 ; 'FINSI' ;
  99. NE_Y_D = 2 '*' (NE_Y_D '/' 2) ;
  100. 'MESS' 'POLY : NE_Y_D valeur paire (rela accro ne marche pas pour POLY)' ;
  101. 'FINSI' ;
  102.  
  103. * En cas de maillage libre : on definit tous les cotes
  104. 'SI' ('EGA' s_mail '_LIBR_') ;
  105. * Nombre d'elements sur la ligne CD :
  106. NE_X_H = N_h ;
  107. * Nombre d'elements sur la ligne DA :
  108. NE_Y_G = N_h + 2 ;
  109. 'FINSI' ;
  110. * En cas de maillage regulier : On impose NE_Y_G = NE_Y_D & NE_X_H = NE_X_B
  111. 'SI' ('EGA' s_mail '_REGU_') ;
  112. NE_X_H = NE_X_B ;
  113. NE_Y_G = NE_Y_D ;
  114. 'FINSI' ;
  115.  
  116. NomFic = 'CHAINE' 'MembraneCook_HPP_Elas_' s_typEF '_NEL_' NE_Y_D s_mail ;
  117. mess ; mess '==>' NomFic '<==' ;
  118.  
  119. 'SI' b_trac ;
  120. 'OPTION' 'TRAC' 'PSC' 'FTRA' ('CHAINE' NomFic '.ps') ;
  121. 'OPTION' 'EPTR' 20 'POTR' 'HELVETICA_18' 'POLI' 'HELV_18' ;
  122. 'FINSI' ;
  123.  
  124. *------------------------------------------------------------------------------*
  125. 'OPTION' 'DIME' 2 'MODE' 'PLAN' s_modcalc ;
  126.  
  127. * Cadre = HPP et Elasticite Lineaire :
  128. 'SI' ('<' str_ver 21) ;
  129. 'OPTION' 'EPSI' 'LINEAIRE' ;
  130. 'FINSI' ;
  131.  
  132. *------------------------------------------------------------------------------*
  133. * Donnees geometriques :
  134. Lg_X_M = 48. ;
  135. Lg_G_M = 44. ;
  136. Lg_D_M = 16. ;
  137.  
  138. *------------------------------------------------------------------------------*
  139. Pt_Orig = 0. 0. ;
  140.  
  141. Pt_A_M = 0. 0. ;
  142. Pt_B_M = Lg_X_M Lg_G_M ;
  143. Pt_C_M = Lg_X_M (Lg_G_M '+' Lg_D_M) ;
  144. Pt_D_M = 0. Lg_G_M ;
  145.  
  146. *------------------------------------------------------------------------------*
  147. 'OPTION' 'ELEM' s_TypElt ;
  148.  
  149. Lig_BC_M = 'DROITE' NE_Y_D Pt_B_M Pt_C_M ;
  150. Lig_CD_M = 'DROITE' NE_X_H Pt_C_M Pt_D_M ;
  151. Lig_DA_M = 'DROITE' NE_Y_G Pt_D_M Pt_A_M ;
  152. Lig_AB_M = 'DROITE' NE_X_B Pt_A_M Pt_B_M ;
  153. Pts_BC_M = 'CHANGER' 'POI1' Lig_BC_M ;
  154. Pts_DA_M = 'CHANGER' 'POI1' Lig_DA_M ;
  155.  
  156. Lig_Co_M = Lig_BC_M 'ET' Lig_CD_M 'ET' Lig_DA_M 'ET' Lig_AB_M ;
  157. lig_Co_M = Lig_Co_M 'COULEUR' 'BLEU' ;
  158.  
  159. 'SI' (('EGA' s_typelt 'POLY') 'OU' ('EGA' s_mail '_LIBR_')) ;
  160. Membrane_M = 'SURFACE' Lig_Co_M 'PLANE' ;
  161. 'FINSI' ;
  162. 'SI' (('NEG' s_typelt 'POLY') 'ET' ('EGA' s_mail '_REGU_')) ;
  163. Membrane_M = 'DALLER' Lig_BC_M Lig_CD_M Lig_DA_M Lig_AB_M 'PLANE' ;
  164. 'FINSI' ;
  165. Membrane_M = Membrane_M 'COULEUR' 'OCEAN' ;
  166.  
  167. 'MESS' ;
  168. 'MESS' 'Nombre d elements cote BC =' ' ' NE_Y_D ;
  169. mess 'Nombre de noeuds Membrane :' ' ' ('NBNO' Membrane_M) ;
  170. mess 'Nombre d elements Membrane :' ' ' ('NBEL' Membrane_M) ;
  171. ZZ = 'CHANGER' 'LIGNE' Membrane_M ;
  172. mess 'Nombre d aretes Membrane :' ' ' ('NBEL' ZZ) ;
  173.  
  174. lm_elt = 'ELEM' Membrane_M 'TYPE' ;
  175. 'MESS' 'Type d element souhaite :' ' ' s_typelt ;
  176. 'MESS' 'Type des elements Membrane :' ; list lm_elt ;
  177. ** mess 'Type des aretes Membrane :' ; list ('ELEM' zz 'TYPE') ;
  178.  
  179. Mail_PtM = Pt_B_M 'ET' Pt_C_M 'ET' Pt_D_M 'ET' Pt_A_M ;
  180. Mail_PtM = Mail_PtM 'COULEUR' 'OR ' ;
  181. Elem_PtM = 'ELEMENT' Membrane_M 'APPUYE' 'LARGEMENT' Mail_PtM ;
  182.  
  183. * Quelques points interessants : pour EF (pas pour HHO)
  184. Pt_A = Lg_X_M (Lg_G_M '+' (0.5 '*' Lg_D_M)) ;
  185. * Le point A du maillage est soit 1) un noeud du maillage, 2) le milieu d'un segment.
  186. * Pour le cas 1), (NE_Y_D est pair) ou (str_elt est QUA8/TRI6).
  187. * Pour le cas 2), (NE_Y_D est impair) et str_elt est QUA4/TRI3/POLY).
  188. b_AdansM = ('MULT' NE_Y_D 2) 'OU' (('EGA' s_typelt 'QUA8') 'OU' ('EGA' s_typelt 'TRI6')) ;
  189. 'SI' b_AdansM ;
  190. Pt_A = 'POINT' Lig_Co_M 'PROCHE' Pt_A ;
  191. 'SINON' ;
  192. MESS ;
  193. MESS ' Accrochage Pt_A sur Membrane_M :' ;
  194. Rig_A = 'RELA' 'ACCRO' ('MANU' 'POI1' Pt_A) Membrane_M ;
  195. Rig_A obj_z = 'CHANGER' Rig_A 'COND' ;
  196. 'FINSI' ;
  197. Elem_PtA = 'ELEMENT' Membrane_M 'CONTENANT' Pt_A 'TOUS' ;
  198. Elem_PtDM = 'ELEMENT' Membrane_M 'APPUYE' 'LARGEMENT' Pt_D_M ;
  199. Elem_PtAM = 'ELEMENT' Membrane_M 'APPUYE' 'LARGEMENT' Pt_A_M ;
  200.  
  201. Mail_Pts = Pt_A 'ET' Mail_PtM ;
  202. Mail_Pts = Mail_Pts 'COULEUR' 'ROUG' ;
  203.  
  204. * Quelques traces :
  205. 'SI' b_trac ;
  206. 'TRACER' (Lig_Co_M 'ET' Mail_Pts) 'TITRE' 'Membrane de Cook - Contour' ;
  207. 'TRACER' (Membrane_M 'ET' Mail_Pts) 'TITRE' 'Membrane de Cook - Maillage' ;
  208. 'FINSI' ;
  209.  
  210. *------------------------------------------------------------------------------*
  211. * Modele et Materiau :
  212. Modl_MC = 'MODELE' Membrane_M 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE'
  213. 'HHO_1_1'
  214. 'CONS' 'MECA' ;
  215.  
  216. CStab = Mat_Youn '/' (1 '+' Mat_Pois) ;
  217. Mate_MC = 'MATERIAU' Modl_MC 'YOUN' Mat_Youn 'NU ' Mat_Pois 'STAB' CStab ;
  218.  
  219. HHO_Pts_F = ('EXTRAIRE' Modl_MC 'HHO_PFAC') 'COULEUR' 'BLEU' ;
  220. HHO_Pts_C = ('EXTRAIRE' Modl_MC 'HHO_PCEL') 'COULEUR' 'OLIV' ;
  221. HHO_Pts_M = HHO_Pts_C 'ET' HHO_Pts_F ;
  222. HHO_Lig_M = ('EXTRAIRE' Modl_MC 'HHO_FACE') 'COULEUR' 'ORAN' ;
  223. 'SI' b_trac ;
  224. trac (HHO_Lig_M et HHO_Pts_M) 'TITR' 'Faces (Orange) - Points supports HHO Faces (Bleu) Cellules (Vert)' ;
  225. 'FINSI' ;
  226.  
  227. HHO_DA_M = 'POINT' HHO_Pts_F 'DROITE' Pt_D_M Pt_A_M 1.E-9 ;
  228. HHO_BC_M = 'POINT' HHO_Pts_F 'DROITE' Pt_B_M Pt_C_M 1.E-9 ;
  229.  
  230. modl_1 = 'REDU' Modl_MC Elem_PtAM ;
  231. ma_1 = 'EXTRAIRE' Modl_1 'HHO_PFAC' ;
  232. li_1 = 'EXTRAIRE' Modl_1 'HHO_FACE' ;
  233. 'SI' b_trac ;
  234. trac (Membrane_M 'ET' ma_1 'ET' (li_1 coul ROUG) 'ET' Elem_PtAm ) ;
  235. 'FINSI' ;
  236.  
  237. modl_2 = 'REDU' Modl_MC Elem_PtA ;
  238. ma_2 = 'EXTRAIRE' Modl_2 'HHO_PFAC' ;
  239. li_2 = 'EXTRAIRE' Modl_2 'HHO_FACE' ;
  240. 'SI' b_trac ;
  241. trac (MEMBRANE_M 'ET' ma_2 'ET' (li_2 coul ORAN) 'ET' Elem_PtA) ;
  242. 'FINSI' ;
  243.  
  244. modl_3 = modl_1 'ET' modl_2 ;
  245. ma_3 = (('EXTRAIRE' Modl_3 'HHO_PFAC') 'COULEUR' 'BLEU') 'ET'
  246. (('EXTRAIRE' Modl_3 'HHO_PCEL') 'COULEUR' 'VERT') ;
  247. li_3 = 'EXTRAIRE' Modl_3 'HHO_FACE' ;
  248. 'SI' b_trac ;
  249. trac (MEMBRANE_M 'ET' ma_3 'ET' (li_3 coul ORAN) 'ET' Elem_PtA) ;
  250. 'FINSI' ;
  251.  
  252. *------------------------------------------------------------------------------*
  253. * Conditions aux limites - Chargement :
  254. CAL_BLG = 'BLOQUE' 'UXF0' 'UYF0' 'UXF1' 'UYF1' HHO_DA_M ;
  255. **list CAL_BLG ;
  256.  
  257. * Contrainte tangentielle imposee sur la ligne BC
  258. Py_BC = RCis_BC ;
  259. Fy_BC = 'MANU' 'CHPO' HHO_BC_M 4 'FXF0' 0. 'FYF0' (Py_BC / ('NBNO' HHO_BC_M))
  260. 'FXF1' 0. 'FYF1' 0.
  261. 'NATURE' 'DISCRET' ;
  262. ** Fy_BC = 'FORC' HHO_BC_M 'FYF0' Py_BC ; ne marche pas car composantes imposees FX, FY
  263. ** Py_BC = 0. (RCis_BC '/' Lg_D_M) ;
  264. ** Fy_BC = 'FSUR' 'MASS' Modl_MC Py_BC Lig_BC_M ;
  265.  
  266. *------------------------------------------------------------------------------*
  267. * Resolution du probleme :
  268.  
  269. Rigi_MC = 'RIGIDITE' Modl_MC Mate_MC ;
  270. ** Rigi_MF Rigi_DE = 'HHO' 'CONDENSE' Rigi_MC ;
  271.  
  272. * Cas 1 :
  273. ** Chp_U_MC = 'RESOU' (Rigi_MC 'ET' CAL_BLG 'ET' CAL_BL_PtA) D_Uy_PtA ;
  274.  
  275. * Cas 2 :
  276. Rigi_TOT = Rigi_MC 'ET' CAL_BLG ;
  277. Chp_U_MC = 'RESOU' Rigi_TOT Fy_BC ;
  278. **list Chp_U_MC ;
  279.  
  280. **Chp_U_MC = 'HHO' 'DECONDENSE' Rigi_DE Chp_U_MF ;
  281.  
  282. *------------------------------------------------------------------------------*
  283. * Depouillement - Quelques champs mecaniques :
  284.  
  285. * Il faut reconstruire un champ de deplacement avec les composantes de deplacement "classiques" :
  286. chm_U = 'CHANGER' 'CHAM' chp_u_mc modl_mc 'NOEUD' ;
  287. 'SI' ('NON' b_mfin) ;
  288. list chm_U ;
  289. 'FINSI' ;
  290.  
  291. Chm_Eps_MC = 'EPSI' 'LINE' Modl_MC Mate_MC Chp_U_MC ;
  292. 'SI' ('NON' b_mfin) ;
  293. list chm_Eps_MC ;
  294. 'FINSI' ;
  295. Chm_I1E_MC Chm_I2E_MC Chm_I3E_MC = 'INVARIANT' Chm_Eps_MC Modl_MC Mate_MC ;
  296. Chm_trE_MC = chm_I1E_MC ;
  297. 'SI' ('NON' b_mfin) ;
  298. list chm_trE_MC ;
  299. 'FINSI' ;
  300.  
  301. Chm_Sig_MC = 'SIGMA' 'LINE' Modl_MC Mate_MC Chp_U_MC ;
  302. Chm_I1S_MC Chm_I2S_MC Chm_I3S_MC = 'INVARIANT' Chm_Sig_MC Modl_MC Mate_MC ;
  303. Chm_Phy_MC = (1. '/' 3.) '*' chm_I1S_MC ;
  304. Chm_VMi_MC = 'VMIS' Modl_MC Chm_Sig_MC ;
  305. 'SI' ('NON' b_mfin) ;
  306. list chm_VMi_MC ;
  307. 'FINSI' ;
  308.  
  309. *------------------------------------------------------------------------------*
  310. * Depouillement :
  311.  
  312. **'SI' b_trac ;
  313. 'SI' FAUX ;
  314. Mail_ini = Membrane_M ;
  315. Mail_fin = Membrane_M 'PLUS' Chp_U_MC ;
  316. Mail_fin = Mail_fin 'COULEUR' 'CYAN' ;
  317. * Les maillages sont confondus car le champ de deplacement n'a pas les composantes de deplacement "classiques" (il faut reconstruire un champ a partir des resultats)
  318. 'TRACER' (Mail_ini 'ET' Mail_fin)
  319. 'TITRE' 'Membrane de Cook - Maillages initial (OCEAN) et final (CYAN)' ;
  320. 'FINSI' ;
  321.  
  322. 'FIN' ;
  323.  
  324.  
  325.  
  326.  

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