% Advection (1-dimensional)
% C. Kohlmeier 160118

clear all
close all
clc


col=[autumn;flipud(gray)];
colormap(col);
colorscaleC=[-0.5 0.5];

% Eigenschaften des Konzentrations-Plots
konz=figure(1);
set(gcf,'Position',[010,500,700,200]);

% Anzahl der Zellen
N = 50;

% Parameter
dt=1;
dx=1;
v=input('Strömungsgeschwindigkeit (1 default):  ');
if isempty(v) 
v=1;
end

sprintf('Stabilität Courantzahl :  %f < 1 \n', v*dt/dx)


% Startbedingungen
C= zeros(1,N); % C ist Zeilenvektor
C(1,5)=1;

%Anfangszustand anzeigen
figure(konz)
imagesc(C,colorscaleC)
axis off
colorbar('location','SouthOutside')
title(sprintf('Konzentration Time = %3d',0))

dummy = input('Bitte eine Taste druecken ');
set(konz  , 'Visible', 'On'); 

% Zeitloop --------------------------------------------------------------------

for t = dt:dt:100

   % verschobenen Vektor fuer den Transport erzeugen
     C1= [C(1,N) C(1,1:N-1)];

   % Bestimmung der neuen Konzentration
     C = C +v*(C1-C)*dt/dx;

    imagesc(C,colorscaleC)
    axis off
    colorbar('location','SouthOutside')
    title(sprintf('Konzentration Time = %3d',t))

    drawnow
 

          
end % Zeitloop  ----------------------------------------------------------
