%   acous1.m
%   Acoustique numerique  
%   Logiciel 'HaWAY1' avec Octave-Matlab.
%   fd    haway1  1 fevrier 2001, 
%         tp1     16 octobre 2001, 
%         acous1  02 fevrier 2006, 25 fevrier 2025
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%              Haway1. Test du mode d ordre un.
%   nombre de mailles ne 
ne = 50
%   nombre de pas de temps nt
niter = 100
%   nombre de sommets
ns = ne + 1 ;
%   pas d espace
dx = 1. / ne ; 
%   nombre deCourant-Friedrich-Lewy
cfl = 0.65
%  cfl = 1.025
%   pas de temps
dt  = cfl * dx ; 
%                                  abscisses des sommets
xx        = 0 ; 
x         = zeros(ns,1) ; 
for     j = 1:ns ; 
x(j:j,1)  = xx ; 
xx        = xx + dx ; 
end ;
%                                  milieux des elements
xx        = 0.5 * dx ; 
y         = zeros(ne,1) ; 
for     k = 1:ne ; 
y(k:k,1)  = xx ; 
xx        = xx + dx ; 
end ;
%                                  initialisation du champ de vitesse
uzero     = zeros(ns,1) ; 
%                                  initialisation du champ de pression
xx           = 0.5 * dx ; 
pzero        = zeros(ne,1) ; 
for        k = 1:ne ; 
pzero(k:k,1) = cos (pi*xx) ;  
xx           = xx + dx ; 
end ;
%
plot (x,uzero,'o3;vitesse initiale;',  y,pzero,'*k;pression initiale;' )
title('conditions initiales')
axis ([ 0  1.0   -1.1   1.1 ]) 
pause (1.5) 
%                                                   iterations en temps 
time           = 0
uu             = uzero ; 
pp             = pzero ; 
for       ipts = 1 :  niter
   for   j     = 2 :  ns-1 ; 
   uu(j:j,1)   = uu(j:j,1) - dt * (pp(j:j,1)-pp(j-1:j-1,1)) / dx ; 
   end ;
   for   k     = 1 :  ne ;  
   pp(k:k,1)   = pp(k:k,1)  - dt * (uu(k+1:k+1,1) - uu(k:k,1)) / dx ; 
   end ;
plot (x,uu,'o3;vitesse;', y,pp,'*k;pression;' ) ; 
axis ([ 0  1.0   -1.1   1.1 ]) ;
pause(.01) 
end ;

plot (x,uu,'o3;vitesse;', y,pp,'*k;pression;' ) ; 
axis ([ 0  1.0   -1.1   1.1 ])  

title('acoustique   vitesse imposee aux bords')
print -dpdf acous-1-final.pdf
print -djpg acous-1-final.jpg


