Vous êtes sur la page 1sur 10

%Solucion Analitica - Ecuacion de Adeveccion (1D)%Metodo Numerico - Diferencias

Finitas
%Metodo UPWIND
clear all; clc; close all;
%Variables Analiticas
%Velocidad de Flujo
%Masa=M
%ti-->tf=Delta de Timepo en donde ocurre la difusion
%Xi-->Xf= Delta de Espacio donde ocurre la difusion
%nv= numero de vueltas
D=0.1; M=10; Aa=10;
u=0.1;
xi=-4; xf=4;
nv=2
ti=1;
tf= ((nv*(xf-xi))/u) -ti
n=20;
xo=0;
A=0.4; %CFL
matn=[0.1:0.1:2]
val=0

for l=1:length(matn)
A=matn(l)
val=val+1
%Solucion Analitica Ecuadcion Adeveccion 1D
%Division del espacio en n valores
x=linspace(xi,xf,n);
xvo=linspace(xo,xo,n);
%Calculo Delta X y Delta t
deltax=(xf-xi)/n
deltat=(deltax*A)/u
%Cantidad de pasos de tiempo para la simulacion
nt=(tf-ti)/deltat
t=ti;
C= ((M/Aa)/sqrt(4*pi*D*t))*exp(-((x-xvo).^2)/(4*D*ti));
Cf=C;
CC=C;
for t= 1:nt
C(1)=C(n);
%Solucion Numerica UPWIND

for i=2:n
Cf(i)=(1-A)*C(i) +A*C(i-1);
end
C=Cf;
plot(x,C)
title('Metodo UPWIND ')
ylabel('Concentraccion');
xlabel('Espacio');
axis([xi xf 0 M/Aa])
hold off
pause(0.1)
end
errNN=abs(Cf-CC);
errG(val)=norm(errNN)
end
figure(2)
semilogy(matn,errG)
hold
title('Norma Euclidea vs CFL')
ylabel('Norma Euclidea');
xlabel('CFL');
figure(3)
subplot(2,1,1)
plot(x,C)
hold on
plot(x,CC,'*r')
title('Metodo UPWIND ')
ylabel('Concentraccion');
xlabel('Espacio');
% axis([xi xf 0 M/Aa])
hold off
pause(0.1)
subplot(2,1,2)
semilogy(x,errNN)
title('Error Total')
ylabel('Error');
xlabel('Espacio');

Vous aimerez peut-être aussi