************************************************************************ * NOM : OSCICYL2 * DESCRIPTION : Cylindre oscillant dans une cavité fermée * * Deux paramètres : le nombre de Reynolds (convection/viscosité) * le nombre de Keulegan-Carpenter (convection/masse,trainee) * * * Bibliographie : thèse de Marion Duclercq * avec Daniel BROC * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stephane GOUNAND et Dihya MEZI (CEA/DES/ISAS/DM2S/SEMT/LTA) * mel : stephane.gounand@cea.fr ********************************************************************** * VERSION : v1, 28/01/2022, version initiale * HISTORIQUE : v1, 28/01/2022, création * HISTORIQUE : * HISTORIQUE : ************************************************************************ * * 'OPTION' 'DIME' 2 'ELEM' 'QUA8' 'ECHO' 0 ; *'OPTI' 'ISOV' suli ; graph = faux ; * condition vitesse normale l_cl = vrai ; ****Definitions des parametres des longueurs Rayon = 20.E-2; Long = 13 * Rayon ; Haut = 10 * Rayon ; * Parametres pour le maillage nx=26; ny=14; nc=6; *nx = nx * 2 ; *ny = ny * 2 ; *nc = nc * 2 ; ********** Creation du contour exterieur pA= 0. 0. ; pB=Long 0. ; pC= Long Haut ; pD= 0. Haut ; bas = 'DROI' nx pA pB; dro= 'DROI' ny pB pC; hau= 'DROI' nx pC pD; gau = 'DROI' ny pD pA; **** Creation du cercle pcen= (Long * 0.5) (Haut * 0.5) ; pE = ((0.5 * Long) '-' Rayon) (0.5 * Haut); pF = ((0.5 * Long) ) ((0.5 * Haut) '+'Rayon ); pG= ((0.5 * Long)'+' Rayon ) ((0.5 * Haut) ); pH=((0.5 * Long) ) ((0.5 * Haut) '-' Rayon ); CE1 = 'CERCLE' nc pE pcen pF; CE2= 'CERCLE' nc CE1 pcen pG; CE3= 'CERCLE' nc CE2 pcen pH; CE= 'CERCLE' nc CE3 pcen pE; * Contour du maillage exterieur cmt1= bas 'ET' dro 'ET' hau 'ET' gau ; *** Contour total avec cercle cmt= bas 'ET' dro 'ET' hau 'ET' gau 'DIFF' CE; mt = 'SURFACE' cmt; 'ELIMINATION' mt 1.E-9; * Changer le maillage en un maillage quadratique fluide _mt='CHAN' mt 'QUAF'; *'TRAC' _mt nclk ; ************************************************************************ * champ des normales CE CE2 = changer CE seg2 ; mod_cyl2 = mode CE2 mecanique elastique coq2 ; norm_cyl = pression mod_cyl2 1. coque normale ; norm_cyl = norm_cyl / ((psca norm_cyl norm_cyl (mots fx fy) (mots fx fy)) ** 0.5) ; v_norm = vecteur norm_cyl 1.e-2 fx fy jaune ; si graph ; titre (et tit_ref ' / champ des normales ') ; trac v_norm CE nclk; finsi ; * n_CE = NOMC ('ENLE' norm_cyl 'MZ') (mots 'FX' 'FY') (mots 'UX' 'UY') ; mn_CE = extr n_CE mail ; ie1 = 0 ; repeter b_blCE (nbel mn_CE) ; ie1 = ie1 + 1 ; poie1 = 'POINT' mn_CE ie1 ; ch_u = 'REDU' n_CE poie1 ; mbl_u = 'RELA' ch_u ; fbl_u = 'DEPI' mbl_u ('EXTR' ch_u 'UX' poie1) ; si (ie1 ega 1) ; mbl_CE = mbl_u ; fbl_CE = fbl_u ; sinon ; mbl_CE = mbl_u et mbl_CE ; fbl_CE = fbl_u et fbl_CE ; finsi ; fin b_blCE ; fbl_CEv = fbl_CE ; **** Conditions de blocage *** Vitesse *mblox = 'BLOQUE' 'UX' cmt1 ; mblox = 'BLOQUE' 'UX' (dro et gau) ; *mbloy = 'BLOQUE' 'UY' cmt1 ; mbloy = 'BLOQUE' 'UY' (bas et hau) ; mblocx = 'BLOQUE' 'UX' CE ; mblocy = 'BLOQUE' 'UY' CE ; **** Physique *** nombre de Reynolds de 100 *** nombre de Keulegan-Carpenter de 2 Re = 100. ; rho1 = 1.e3 ; mu1 = 1.e0 ; nre= 1 '/' Re ; KC = 2. ; **** Numérique *** Pas de temps (cf. thèse Marion Duclercq) 'SI' ('>' KC 2.) ; dt = 0.05 '/' KC ; 'SINO' ; dt = 0.025 ; 'FINS' ; *dt = dt * 4. ; mns1 = mode _mt 'NAVIER_STOKES' 'NLIN' 'QUAF' 'LINE' 'CHPO' 'GAP7' ; cns1 = mate mns1 RHO rho1 MU mu1 ; cns2 = cns1 et (mate mns1 FREQ (dt**(-1))) ; *** Pression mapcen = extr mns1 'CENT' ; pp2 = 'POIN' mapcen 'PROC' (0. (Haut/2)) ; mblop = 'BLOQ' 'LX1' pp2 ; mtbid = changer _mt line ; mbid = mode mtbid mecanique elastique ; cbid = mate mbid youn 1.e10 nu 0.3 rho 2.; **** Matrices fixes du probleme *** Rigidité (objet RIGIDITE) * mrigi = 'NLIN' gdisc _mt A B mot1 mot2 ; nrigi = rigi (mns1 et mbid) (cns1 et cbid) ; rigbid = rigi (mbid) (cbid) ; *** Contrainte div U ndiv = rigi 'DIVE' (mns1 et mbid) (cns1 et cbid) ; *** Masse pondérée par le pas de temps nmass = mass (mns1 et mbid) (cns2 et cbid) ; ************************************************************************ **** Conditions initiales U0 = 'MANUEL' 'CHPO' _mt 2 'UX' 0. 'UY' 0. ; UNM = U0 ; UN = U0 ; solu= UN; EPS= 1.0D-9; tps= 0. ; * * mouvement impose au cylindre abs_t = prog 0. pas Dt (20*Dt) ; *abs_t = prog 0. pas Dt (70*Dt) ; ord_t = 'SIN' (360. '*' abs_t) * Rayon * 1.e-1 ; ev_t = evol vert manu ' t' abs_t ord_t ; absx_CE = ((coor 1 CE) - (coor 1 pcen))/Rayon ; absc_CE = abs absx_CE ; absy_CE = ((coor 2 CE) - (coor 2 pcen))/Rayon ; si l_cl ; fbl_CE = fbl_CEv ; sinon ; fbl_CE = 'DEPI' mblocx ('NOMC' 'UX' absc_CE) ; finsi ; char_t = 'CHAR' 'DIMP' fbl_CE ev_t ; unmax = maxi fbl_CE ; * t_fltub = table 'PASAPAS' ; t_fltub . modele = mns1 ; t_fltub . caracteristiques = cns1 ; si l_cl ; t_fltub . blocages_mecaniques = mblox 'ET' mbloy 'ET' mbl_CE et mblop ; sinon ; t_fltub . blocages_mecaniques = mblox 'ET' mbloy 'ET' mblop 'ET' mblocx 'ET' mblocy ; finsi ; t_fltub . chargement = char_t ; t_fltub . temps_calcules = abs_t ; *t_fltub . temps_calcules = prog 0. Dt ; pasapas t_fltub ; ************************************************************************ graph = faux ; nomvit = 'EXTR' mns1 'DEPL' ; t_pap = t_fltub ; dep_0 = t_pap . vitesses_fluide . 1 * 0. ; abs_t = prog ; of_x = prog ; of_y = prog ; op_x = prog ; op_y = prog ; f0_x = 0. ; f0_y = 0. ; p0_max = 0. ; p0_min = 0. ; ux_CE = 0. ; repeter BTRA ((dime t_pap . temps) - 1) ; solu = t_pap . vitesses_fluide . &btra ; unpip = 'EXCO' solu nomvit ; pnp = t_pap . pression_fluide . &btra ; vun = 'VECTEUR' (unpip/unmax/3) nomvit 'ORAN' ; * trainee et portance defini par les reactions si l_cl ; ch_pr0 = 'REAC' mbl_CE solu ; * maillage CE régulier f0_CE = 'RESU' ch_pr0 ; f_x = 'EXTR' f0_CE 'FX' ('POINT' 1 ('EXTR' f0_CE 'MAIL')) ; f_y = 'EXTR' f0_CE 'FY' ('POINT' 1 ('EXTR' f0_CE 'MAIL')) ; sinon ; f_x = 'MAXI' ('RESU' ('REAC' mblocx solu)) ; f_y = 'MAXI' ('RESU' ('REAC' mblocy solu)) ; finsi ; f_x = f_x * (-1) ; f_y = f_y * (-1) ; abs_t = abs_t et t_pap . temps . &btra ; of_x = of_x et (prog f_x) ; of_y = of_y et (prog f_y) ; f0_x = maxi (prog (abs f_x) f0_x) ; f0_y = maxi (prog (abs f_y) f0_y) ; * resultante pression pre_CE = redu pnp CE ; p_max = maxi pre_CE ; p0_max = maxi (prog p_max p0_max) ; p_min = mini pre_CE ; p0_min = mini (prog p_min p0_min) ; pre_x = pre_cE * absx_CE ; pre_y = pre_CE * absy_CE ; fp_x = intg (evol chpo CE pre_x) ; fp_y = intg (evol chpo CE pre_y) ; op_x = op_x et (prog fp_x) ; op_y = op_y et (prog fp_y) ; fin BTRA ; of_x = of_x / f0_x ; of_y = of_y / f0_y ; si (graph) ; repeter BTRA ((dime t_pap . temps) - 1) ; solu = t_pap . vitesses_fluide . &btra ; unpip = 'EXCO' solu nomvit ; pnp = t_pap . pression_fluide . &btra ; vun = 'VECTEUR' (unpip/unmax/3) nomvit 'ORAN' ; chf_cer = manu chpo pcen 2 'FX' (extr of_x &btra) 'FY' (extr of_y &btra) ; vf_cer = vecteur 0.7 chf_cer 'FX' 'FY' 'TURQ' ; v_visu = vun et vf_cer ; ma_visu = _mt et pcen ; titres 'pression / vitesses temps = ' t_pap . temps . &btra ; trac pnp v_visu ma_visu (contour mt) nclk; 'SI' ('EGA' ('TYPE' mz_CE) 'MAILLAGE') ; unz_CE = redu unpip mz_CE ; vunz_CE = 'VECTEUR' (unz_CE/unmax) nomvit 'ORAN' ; trac pnp vunz_CE mz_CE(contour mz_CE) ; 'FINSI' ; si (ega &btra 1) ; def_1 = defo ma_visu dep_0 v_visu pnp ; sinon ; def_1 = def_1 et (defo ma_visu dep_0 v_visu pnp) ; finsi ; fin BTRA ; evf_x = 'COUL' vert ('EVOL' 'MANU' abs_t of_x) ; evf_y = 'COUL' bleu ('EVOL' 'MANU' abs_t of_y) ; 'DESS' (evf_x et evf_y) 'TITR' 'f_x(t) parallele vert / f_y(t) orthogonal bleu (normes)' ; mess 'reactions x maxi : ' f0_x ' y maxi : ' f0_y ; evp_x = 'COUL' rouge ('EVOL' 'MANU' abs_t op_x) ; evp_y = 'COUL' jaune ('EVOL' 'MANU' abs_t op_y) ; 'DESS' ((evf_x * f0_x) et evp_x) 'TITR' 'reaction vert / pression rouge en x ' ; 'DESS' ((evf_y * f0_y) et evp_y) 'TITR' 'reaction bleu / pression jaune en y ' ; d_cop = (p0_max - p0_min) / 16 ; l_cop = prog p0_min pas d_cop p0_max ; titre 'vitesses / pression / effort cylindre dt = ' dt ' t max = ' (maxi abs_t) ; trac anim def_1 l_cop ; * finsi ; ef_x = maxi (abs ((of_x*f0_x) - op_x)) ; mess 'ecart ' ef_x ; si (ef_x < 1.e-3) ; erre 0 ; sinon ; erre 5 ; finsi ; *opti donn 5 ; * * End of dgibi file oscillations * 'FIN' ;