function uebung3_haupt

% close all; 
% clear all; clc

% Dynamisches Modell einer Chromatographiesaeule (1-D, v=const). Loesung zur
% 3. Matlabuebung vom 17.11.2009.


% #################################################################################
% # Laden der Deklarationen, Definitionen
% #################################################################################

p=uebung_3_para;

% #################################################################################
% # Solver-Aufruf, Loesen des Differentialgleichungssystems
% #################################################################################


%%% add on: Variation der Geschwindigkeit
% ____________________________
% p.vek_speed=p.V/p.A*[2 1 0.5];             % Konvektionsgeschwindigkeit
% des Eluenten [m/s]
% for var_speed=1:length(p.vek_speed)
% p.v=p.vek_speed(var_speed);
% ____________________________


% Anfangsbedingungen
c_A0=0;                    % Anfangskonzentrationen in der mobilen Phase A [mol/m^3]
c_B0=0;                    % Anfangskonzentrationen in der mobilen Phase B [mol/m^3]
theta_A0=0;                % Anfangsbedeckungsgrade in der stationaeren Phase [1]
theta_B0=0;                % Anfangsbedeckungsgrade in der stationaeren Phase [1]

x0=[c_A0*ones(1,p.n) c_B0*ones(1,p.n) ...
    theta_A0*ones(1,p.n) theta_B0*ones(1,p.n)]; % Vektor der Anfangsbedingungen

%%% 1.Integration
% Solverargumente  
tspan=[0 10]; 

% Integrationszeit [s]
options=odeset('RelTol',1e-9,'AbsTol',1e-8); % Solver Optionen

[t,x]=ode15s(@uebung3_system,tspan,x0,options,p); % Solveraufruf


% #################################################################################
% # Auspacken des Loesungsvektors
% #################################################################################
c_A    =x(:,0*p.n+1:1*p.n); % Loesungsmatrix c_A [mol/m^3]
c_B    =x(:,1*p.n+1:2*p.n); % Loesungsmatrix c_B [mol/m^3]
theta_A=x(:,2*p.n+1:3*p.n); % Loesungsmatrix theta_A [1]
theta_B=x(:,3*p.n+1:4*p.n); % Loesungsmatrix theta_B [1]


figure(1);hold on; % zeitlicher Verlauf der Konzentration am Rohrausgang
plot(t,c_A(:,p.n),'b',t,c_B(:,p.n),'ro-');








xlabel('Zeit, t [s]'); ylabel('Konzentration, c [mol/m^3]'); legend('c_A','c_B');
title('Zeitlicher Verlauf der Konzentration am Rohrausgang c_A'); grid on;


figure(2); % Profil der Konzentrationen c_A
surf(t, p.z,c_A','linestyle','none'); xlabel('Zeit, t [s]'); ylabel('Ort, z [m]');
zlabel('Konzentration, c [mol/m^3]');
title('Konzentrationsprofil c_A'); grid on;

figure(3); % Profil der Konzentrationen c_B
surf(t, p.z,c_B','linestyle','none'); 
xlabel('Zeit, t [s]'); ylabel('Ort, z [m]');
zlabel('Konzentration, c [mol/m^3]');
title('Konzentrationsprofil c_B'); grid on;

figure(4); % Profil der Bedeckungsgrade theta_A
surf(t, p.z,theta_A','linestyle','none'); xlabel('Zeit, t [s]'); ylabel('Ort, z [m]');
zlabel('Bedeckungsgrad, \theta_A [1]');
title('Profil des Bedeckungsgrades \theta_A'); grid on;

figure(5); % Profil der Bedeckungsgrade theta_B
surf(t, p.z,theta_B','linestyle','none'); xlabel('Zeit, t [s]'); ylabel('Ort, z [m]');
zlabel('Bedeckungsgrad, \theta_B [1]');
title('Profil des Bedeckungsgrades \theta_B'); grid on;

%%% add on: nur vielleicht zeigen
%%% Rueckrechnung r_ADDE
r_adde_A = p.k_ad_A.*(c_A.*(1-(theta_A + theta_B))-...
    1./p.K_adde_A.*theta_A); % Netto-Adsorptionsgeschwindigkeit [mol/s/m^2]
r_adde_A_hin = p.k_ad_A.*(c_A.*(1-(theta_A + theta_B)));
r_adde_A_rueck = p.k_ad_A.*1./p.K_adde_A.*theta_A; % Netto-Adsorptionsgeschwindigkeit [mol/s/m^2]

r_adde_B = p.k_ad_B.*(c_B.*(1-(theta_A + theta_B))-...
    1./p.K_adde_B.*theta_B); % Netto-Adsorptionsgeschwindigkeit [mol/s/m^2]


% figure(100); 
% surf(t, p.z,r_adde_A'*1e8,'linestyle','none');xlabel('Zeit, t [s]'); ylabel('Ort, z [m]');
% zlabel('Reaktionsrate, r_A [mol/m^3/s]');
% title('Konzentrationsprofil r_A'); grid on;
% figure(101); 
% surf(t, p.z,r_adde_B'*1e8,'linestyle','none');xlabel('Zeit, t [s]'); ylabel('Ort, z [m]');
% zlabel('Reaktionsrate, r_B [mol/m^3/s]');
% title('Reaktionsprofil r_B'); grid on;
% figure(102); 
% surf(t, p.z,r_adde_A_hin'*1e8,'linestyle','none');xlabel('Zeit, t [s]'); ylabel('Ort, z [m]');
% zlabel('Reaktionsrate, r_A_hin [mol/m^3/s]');
% figure(103); 
% surf(t, p.z,r_adde_A_rueck'*1e8,'linestyle','none');xlabel('Zeit, t [s]'); ylabel('Ort, z [m]');
% zlabel('Reaktionsrate, r_A_rueck [mol/m^3/s]');
