* fichier : fronabs2.dgibi ************************************************************************ * Section : Mecanique Interaction Fluide Structure ************************************************************************ ******************************************************************** * * test des frontieres absorbantes pour les fluides * * on compare la reponse d'une ligne infinie d'eau soumise à une impulsion * avec la reponse d'une ligne identique mais plus courte avec des * frontières absorbantes * ******************************************************************* opti dime 2 elem qua4 mode plan defo; ******************************************************* graph = 'N' ; * ligne longue *********************************** p1=0 0; p2=60 0; l1=p1 d 60 p2; eau1= l1 tran 1 (0 1) ;; pp = eau1 poin proc ( 8 0) ; lforce = cote eau1 4 ; si (non (ega graph 'N')) ; trac eau1 ; finsi ; modf = 'MODELI' eau1 liquide lqu4 ; matf = mate modf RHO 1.E3 RORF 1.e3 CSON 1435. CREF 1435. LCAR 1. G 9.81; rig1 = rigi modf matf ; mass1 = mass modf matf ; forc1= manu chpo lforce 1 'FPI' 1. ; forc1 = forc1*1000*1; dt = .9/1435.; l_tem = prog 0. dt (2*dt) (1000*dt) ; l_for = prog 0. 1. 0 0 ; evc1=evol manu 'temps' l_tem 'force' l_for; char1=char meca forc1 evc1; tab = table ; tab.depl = manu chpo eau1 2 p 0. 'PI' 0.; tab.vite = manu chpo eau1 2 p 0. 'PI' 0.; tab.char = char1 ; tab.rigi = rig1 ; tab.mass = mass1 ; dtsor = dt; tab.inst = prog 0. pas dtsor 0.03 ; tab.freq = 1./4./dtsor ; tab2 = dynamic tab ; dim1 = dime tab2 ; progp = prog ; progt = prog ; repeter bou1 dim1 ; tt = (&bou1 - 1)*dtsor ; dep1 = tab2.&bou1.depl ; xp = (extr dep1 pp 'P')*1435*1435*1000. ; progp = progp et (prog xp) ; progt = progt et (prog tt) ; fin bou1 ; ev1 = evol manu 'temps' progt 'pression' progp ; ******************************************************* * ligne courte *********************************** p0=0 0; p2=9 0; l1=p1 d 9 p2; eau1= l1 tran 1 (0 1) ;; pp = eau1 poin proc ( 8 0) ; lforce = cote eau1 4 ; lfront = cote eau1 2 ; si (non (ega graph 'N')) ; trac eau1 ; finsi ; modf = 'MODELI' eau1 liquide lqu4 ; matf = mate modf RHO 1.E3 RORF 1.e3 CSON 1435. CREF 1435. LCAR 1. G 9.81; rig1 = rigi modf matf ; mass1 = mass modf matf ; forc1= manu chpo lforce 1 'FPI' 1. ; forc1 = forc1*1000*1; char1=char meca forc1 evc1; tab = table ; tab.depl = manu chpo eau1 2 p 0. 'PI' 0.; tab.vite = manu chpo eau1 2 p 0. 'PI' 0.; tab.char = char1 ; tab.rigi = rig1 ; tab.mass = mass1 ; tab.amor = (amor modf matf lfront); tab.inst = prog 0. pas dtsor 0.03 ; tab.freq = 1./4./dtsor ; tab2 = dynamic tab ; dim1 = dime tab2 ; progp = prog ; progt = prog ; repeter bou1 dim1 ; tt = (&bou1 - 1)*dtsor ; dep1 = tab2.&bou1.depl ; xp = (extr dep1 pp 'P')*1435*1435*1000. ; progp = progp et (prog xp) ; progt = progt et (prog tt) ; fin bou1 ; ev2 = evol rouge manu 'temps' progt 'pression' progp ; ********************* * * comparaison ********************* titre 'comparaison entre les deux solutions'; tabd = table ; tabd.'TITRE' = table ; tabd.'TITRE'. 1 = mot 'LIGNE INFINIE' ; tabd.'TITRE'. 2 = mot 'LIGNE AVEC FRONTIERES ABSORBANTES' ; si (non (ega graph 'N')) ; dess (ev1 et ev2) tabd lege; finsi ; y1 = extr ev1 ordo ; y2 = extr ev2 ordo ; ymax = maxi abs y1 ; dy = abs (y2 - y1) ; err1 = (maxi (dy/ymax) ) * 100 ; mess 'difference relative entre les deux solutions'err1'%' ; si (err1 > 3.) ; erre 5 ; sinon; erre 0 ; finsi ; fin ;