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

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