Download fronabs2.dgibi

Back to the list

* fichier :  fronabs2.dgibi
********************************************************************
*
* 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 = modl 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 = modl 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 ;




 

 

© Cast3M 2003 - All rights reserved.
Disclaimer