0% found this document useful (0 votes)
12 views3 pages

Burgersolvers

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views3 pages

Burgersolvers

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

%Burger solvers

%uux+vvy=0
%FTCS,FTBCS,Dufort-Frankel,Mac-cormack Explicit,BTCS Implicit,BTBCS Implicit
clc
clear all
while(1)
fprintf("1:FTCS Explicit scheme:\n")
fprintf("2:FTBCS Explicit scheme:\n")
fprintf("3:Dufort-Frankel scheme:\n")
fprintf("4:Mac-cormack Explicit scheme:\n")
fprintf("5:BTCS Implicit scheme:\n")
fprintf("6:BTBCS Implicit scheme:\n")
z=input("Enter the choice of scheme:")
switch(z)
case 1
disp("FTCS Explicit Scheme")
case 2
disp("FTBCS Explicit scheme")
case 3
disp("Dufort-Frankel scheme")
case 4
disp("Mac-cormack Explicit scheme")
case 5
disp("BTCS Implict Scheme")
case 6
disp("BTBCS Implicit scheme")
otherwise
disp("invalid number")
return;
end
x=-9:0.2:9;
length=18;
dx=0.2;
nx=length/dx+1;
dt=0.001;
time=0.1;%0.4,0.7,1
n=time/dt;
for i=1:nx
u(i)=-2*sinh(x(i))/(cosh(x(i))-exp(-0.1));
end
un=u;
uold=u;
c=dt/dx;
d=dt/(dx*dx);
plot(u)
for iterations=1:n %n is the no of iterations
switch(z)
case 1
for i=2:nx-1

1
un(i)=u(i)-0.5*c*(u(i+1)-u(i-1))+d*(u(i+1)-2*u(i)
+u(i-1));
end
case 2
for i=2:nx-1
un(i)=u(i)-c*(u(i)-u(i-1))+d*(u(i+1)-2*u(i)+u(i+1));
end
case 3
if(iterations==1)
for i=2:nx-1
u(i)=uold(i)-0.5*c*(uold(i+1)-uold(i-1))
+d*(uold(i+1)-2*u(i)+uold(i-1));
end
else
for i=2:nx-1
un(i)=((1-2*d)/(1+2*d))*uold(i)+((c+2*d)/
(1+2*d))*u(i-1)-((c+2*d)/(1+2*d))*u(i+1);
end
uold=u;
end
case 4
for i=2:nx-1
u(i)=uold(i)-c*(uold(i)-uold(i-1))
+d*(uold(i+1)-2*uold(i)+uold(i-1));
end
for i=2:nx-1
un(i)=0.5*(u(i)+uold(i))-0.5*c*(u(i+1)-u(i-1))
+0.5*c*(u(i-1)-2*u(i)+u(i+1));
end
uold=u;

case 5
e(1:nx-3)=-0.5*c-d;
f(1:nx-2)=1+2*d;
g(1:nx-3)=0.5*c-d;
r(1:nx-2)=u(2:nx-1);
r(1)=r(1)+(0.5*c+d)*u(1);
r(nx-2)=r(nx-2)+(d-0.5*c)*u(nx);
un(2:nx-1)=tridiagonal(e,f,g,r);

case 6
e(1:nx-3)=-0.5*c-d;
f(1:nx-2)=1+2*d;
g(1:nx-3)=0.5*c-d;
r(1:nx-2)=u(2:nx-1);
r(1)=r(1)+(c+d)*u(1);
r(nx-2)=r(nx-2)+d*u(nx);
un(2:nx-1)=tridiagonal(e,f,g,r);
otherwise
return;

2
end
u=un;
if rem(iterations,10)==1
plot(un);
xlabel("x");
ylabel("u");
hold on;
end
end
end

1:FTCS Explicit scheme:


2:FTBCS Explicit scheme:
3:Dufort-Frankel scheme:
4:Mac-cormack Explicit scheme:
5:BTCS Implicit scheme:
6:BTBCS Implicit scheme:
z =
1
FTCS Explicit Scheme

1:FTCS Explicit scheme:


2:FTBCS Explicit scheme:
3:Dufort-Frankel scheme:
4:Mac-cormack Explicit scheme:
5:BTCS Implicit scheme:
6:BTBCS Implicit scheme:
z =
45
invalid number

You might also like