Télécharger HHO_Membrane_Cook_HPP_Elas.dgibi
* Fichier HHO_Membrane_Cook_HPP_Elas.dgibi *------------------------------------------------------------------------------* * Test : Membrane de Cook - Elasticite - HPP - Deformations/contraintes Planes * *------------------------------------------------------------------------------* * Unites utilisees : S.I. (m, N, kg, Pa) 'OPTION' 'ECHO' 0 ; *=========== Options de calcul = Modifiables par l'utilisateur ==============* * Nombre d'elements pour definir le maillage de la membrane : N_h = 5 ; * Type d'element souhaite : * Pour s_typelt = MOT a choisir parmi 'TRI3' 'QUA4' 'TRI6' 'QUA8' 'POLY' * Pour passer en DEFOrmations ou CONTraintes PLANES * Pour s_modcalc = MOT a choisir parmi 'CONT' 'DEFO' * Proprietes elastiques du materiau (en USI) : Mat_Youn = 1.125 ; Mat_Pois = 0.49999999 ; * Mat_Lam = 7.5E+6 ; Mat_Mu = 0.375 ; <--> E = 1.124999981250001 & nu = 0.49999997500000126 * Resultante en cisaillement imposee sur le cote BC (en N) : RCis_BC = 1. ; * Option de tracer (fichier Postscript) : b_trac = FAUX ; *=========== FIN des options modifiables par l'utilisateur ===================* *=========== DEBUT Quelques variables d'environnement ========================* 'SI' ('EGA' str_ver ' ') ; * Pour la version du jour str_ver = 99999 ; 'SINON' ; * Pour les versions officielles str_ver = 'ENTI' str_ver ; 'FINSI' ; 'SI' ('EGA' str_hho ' ') ; ** 'MESS' '--> INHIBITION TEST - Cast3M' str_ver ' <--' ; 'MESS' ; 'FIN' ; 'FINSI' ; 'SI' ('NEG' str_z ' ') ; n_z = 'ENTI' str_z ; N_h = n_z ; 'FINSI' ; 'SI' ('NEG' str_z ' ') ; str_z = 'CHANGER' 'MAJU' str_z ; 'FINSI' ; *=========== FIN Quelques variables d'environnement ==========================* *=========== DEBUT Quelques verifications prealables =========================* s_typEF = s_typelt ; 'SI' ('NON' ('EXISTE' lmo_EF s_typEF)) ; 'FINSI' ; N_h = 'ENTIER' N_h ; 'SI' ('<' N_h 1) ; 'ERREUR' '* Nombre d elements N_h incorrect (ENTIER >0)' ; 'FINSI' ; *=========== FIN Quelques verifications prealables ===========================* * Pour un realiser un maillage regulier (DALLER) ou libre (SURF) * En cas de 'POLY', le maillage sera effectue par SURF meme si regulier. *s_mail = 'MOT' '_LIBR_' ; * Nombre d'elements sur la ligne AB : NE_X_B = N_h ; * Nombre d'elements sur la ligne BC : NE_Y_D = N_h ; 'SI' ('<' NE_Y_D 2) ; NE_Y_D = 2 ; 'FINSI' ; NE_Y_D = 2 '*' (NE_Y_D '/' 2) ; 'FINSI' ; * En cas de maillage libre : on definit tous les cotes 'SI' ('EGA' s_mail '_LIBR_') ; * Nombre d'elements sur la ligne CD : NE_X_H = N_h ; * Nombre d'elements sur la ligne DA : NE_Y_G = N_h + 2 ; 'FINSI' ; * En cas de maillage regulier : On impose NE_Y_G = NE_Y_D & NE_X_H = NE_X_B 'SI' ('EGA' s_mail '_REGU_') ; NE_X_H = NE_X_B ; NE_Y_G = NE_Y_D ; 'FINSI' ; NomFic = 'CHAINE' 'MembraneCook_HPP_Elas_' s_typEF '_NEL_' NE_Y_D s_mail ; 'SI' b_trac ; 'OPTION' 'EPTR' 20 'POTR' 'HELVETICA_18' 'POLI' 'HELV_18' ; 'FINSI' ; *------------------------------------------------------------------------------* * Cadre = HPP et Elasticite Lineaire : 'SI' ('<' str_ver 21) ; 'OPTION' 'EPSI' 'LINEAIRE' ; 'FINSI' ; *------------------------------------------------------------------------------* * Donnees geometriques : Lg_X_M = 48. ; Lg_G_M = 44. ; Lg_D_M = 16. ; *------------------------------------------------------------------------------* Pt_Orig = 0. 0. ; Pt_A_M = 0. 0. ; Pt_B_M = Lg_X_M Lg_G_M ; Pt_C_M = Lg_X_M (Lg_G_M '+' Lg_D_M) ; Pt_D_M = 0. Lg_G_M ; *------------------------------------------------------------------------------* 'OPTION' 'ELEM' s_TypElt ; Lig_BC_M = 'DROITE' NE_Y_D Pt_B_M Pt_C_M ; Lig_CD_M = 'DROITE' NE_X_H Pt_C_M Pt_D_M ; Lig_DA_M = 'DROITE' NE_Y_G Pt_D_M Pt_A_M ; Lig_AB_M = 'DROITE' NE_X_B Pt_A_M Pt_B_M ; Pts_BC_M = 'CHANGER' 'POI1' Lig_BC_M ; Pts_DA_M = 'CHANGER' 'POI1' Lig_DA_M ; Lig_Co_M = Lig_BC_M 'ET' Lig_CD_M 'ET' Lig_DA_M 'ET' Lig_AB_M ; lig_Co_M = Lig_Co_M 'COULEUR' 'BLEU' ; 'SI' (('EGA' s_typelt 'POLY') 'OU' ('EGA' s_mail '_LIBR_')) ; Membrane_M = 'SURFACE' Lig_Co_M 'PLANE' ; 'FINSI' ; 'SI' (('NEG' s_typelt 'POLY') 'ET' ('EGA' s_mail '_REGU_')) ; Membrane_M = 'DALLER' Lig_BC_M Lig_CD_M Lig_DA_M Lig_AB_M 'PLANE' ; 'FINSI' ; Membrane_M = Membrane_M 'COULEUR' 'OCEAN' ; 'MESS' ; ZZ = 'CHANGER' 'LIGNE' Membrane_M ; ** mess 'Type des aretes Membrane :' ; list ('ELEM' zz 'TYPE') ; Mail_PtM = Pt_B_M 'ET' Pt_C_M 'ET' Pt_D_M 'ET' Pt_A_M ; Mail_PtM = Mail_PtM 'COULEUR' 'OR ' ; Elem_PtM = 'ELEMENT' Membrane_M 'APPUYE' 'LARGEMENT' Mail_PtM ; * Quelques points interessants : pour EF (pas pour HHO) Pt_A = Lg_X_M (Lg_G_M '+' (0.5 '*' Lg_D_M)) ; * Le point A du maillage est soit 1) un noeud du maillage, 2) le milieu d'un segment. * Pour le cas 1), (NE_Y_D est pair) ou (str_elt est QUA8/TRI6). * Pour le cas 2), (NE_Y_D est impair) et str_elt est QUA4/TRI3/POLY). 'SI' b_AdansM ; Pt_A = 'POINT' Lig_Co_M 'PROCHE' Pt_A ; 'SINON' ; MESS ; MESS ' Accrochage Pt_A sur Membrane_M :' ; 'FINSI' ; Elem_PtA = 'ELEMENT' Membrane_M 'CONTENANT' Pt_A 'TOUS' ; Elem_PtDM = 'ELEMENT' Membrane_M 'APPUYE' 'LARGEMENT' Pt_D_M ; Elem_PtAM = 'ELEMENT' Membrane_M 'APPUYE' 'LARGEMENT' Pt_A_M ; Mail_Pts = Pt_A 'ET' Mail_PtM ; Mail_Pts = Mail_Pts 'COULEUR' 'ROUG' ; * Quelques traces : 'SI' b_trac ; 'TRACER' (Lig_Co_M 'ET' Mail_Pts) 'TITRE' 'Membrane de Cook - Contour' ; 'TRACER' (Membrane_M 'ET' Mail_Pts) 'TITRE' 'Membrane de Cook - Maillage' ; 'FINSI' ; *------------------------------------------------------------------------------* * Modele et Materiau : Modl_MC = 'MODELE' Membrane_M 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE' 'HHO_1_1' 'CONS' 'MECA' ; CStab = Mat_Youn '/' (1 '+' Mat_Pois) ; Mate_MC = 'MATERIAU' Modl_MC 'YOUN' Mat_Youn 'NU ' Mat_Pois 'STAB' CStab ; HHO_Pts_F = ('EXTRAIRE' Modl_MC 'HHO_PFAC') 'COULEUR' 'BLEU' ; HHO_Pts_C = ('EXTRAIRE' Modl_MC 'HHO_PCEL') 'COULEUR' 'OLIV' ; HHO_Pts_M = HHO_Pts_C 'ET' HHO_Pts_F ; HHO_Lig_M = ('EXTRAIRE' Modl_MC 'HHO_FACE') 'COULEUR' 'ORAN' ; 'SI' b_trac ; 'FINSI' ; HHO_DA_M = 'POINT' HHO_Pts_F 'DROITE' Pt_D_M Pt_A_M 1.E-9 ; HHO_BC_M = 'POINT' HHO_Pts_F 'DROITE' Pt_B_M Pt_C_M 1.E-9 ; ma_1 = 'EXTRAIRE' Modl_1 'HHO_PFAC' ; li_1 = 'EXTRAIRE' Modl_1 'HHO_FACE' ; 'SI' b_trac ; 'FINSI' ; ma_2 = 'EXTRAIRE' Modl_2 'HHO_PFAC' ; li_2 = 'EXTRAIRE' Modl_2 'HHO_FACE' ; 'SI' b_trac ; 'FINSI' ; modl_3 = modl_1 'ET' modl_2 ; ma_3 = (('EXTRAIRE' Modl_3 'HHO_PFAC') 'COULEUR' 'BLEU') 'ET' (('EXTRAIRE' Modl_3 'HHO_PCEL') 'COULEUR' 'VERT') ; li_3 = 'EXTRAIRE' Modl_3 'HHO_FACE' ; 'SI' b_trac ; 'FINSI' ; *------------------------------------------------------------------------------* * Conditions aux limites - Chargement : CAL_BLG = 'BLOQUE' 'UXF0' 'UYF0' 'UXF1' 'UYF1' HHO_DA_M ; **list CAL_BLG ; * Contrainte tangentielle imposee sur la ligne BC Py_BC = RCis_BC ; 'FXF1' 0. 'FYF1' 0. 'NATURE' 'DISCRET' ; ** Fy_BC = 'FORC' HHO_BC_M 'FYF0' Py_BC ; ne marche pas car composantes imposees FX, FY ** Py_BC = 0. (RCis_BC '/' Lg_D_M) ; ** Fy_BC = 'FSUR' 'MASS' Modl_MC Py_BC Lig_BC_M ; *------------------------------------------------------------------------------* * Resolution du probleme : Rigi_MC = 'RIGIDITE' Modl_MC Mate_MC ; ** Rigi_MF Rigi_DE = 'HHO' 'CONDENSE' Rigi_MC ; * Cas 1 : ** Chp_U_MC = 'RESOU' (Rigi_MC 'ET' CAL_BLG 'ET' CAL_BL_PtA) D_Uy_PtA ; * Cas 2 : Rigi_TOT = Rigi_MC 'ET' CAL_BLG ; Chp_U_MC = 'RESOU' Rigi_TOT Fy_BC ; **list Chp_U_MC ; **Chp_U_MC = 'HHO' 'DECONDENSE' Rigi_DE Chp_U_MF ; *------------------------------------------------------------------------------* * Depouillement - Quelques champs mecaniques : * Il faut reconstruire un champ de deplacement avec les composantes de deplacement "classiques" : chm_U = 'CHANGER' 'CHAM' chp_u_mc modl_mc 'NOEUD' ; list chm_U ; list chm_Eps_MC ; Chm_I1E_MC Chm_I2E_MC Chm_I3E_MC = 'INVARIANT' Chm_Eps_MC Modl_MC Mate_MC ; Chm_trE_MC = chm_I1E_MC ; list chm_trE_MC ; Chm_Sig_MC = 'SIGMA' 'LINE' Modl_MC Mate_MC Chp_U_MC ; Chm_I1S_MC Chm_I2S_MC Chm_I3S_MC = 'INVARIANT' Chm_Sig_MC Modl_MC Mate_MC ; Chm_Phy_MC = (1. '/' 3.) '*' chm_I1S_MC ; list chm_VMi_MC ; *------------------------------------------------------------------------------* * Depouillement : **'SI' b_trac ; 'SI' FAUX ; Mail_ini = Membrane_M ; Mail_fin = Mail_fin 'COULEUR' 'CYAN' ; * 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) 'TRACER' (Mail_ini 'ET' Mail_fin) 'TITRE' 'Membrane de Cook - Maillages initial (OCEAN) et final (CYAN)' ; 'FINSI' ; 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales