1 function [fehler]=test(Tmicro,Ul,tau,n_x)
3 %
function [fehler]=test(T,Ul,tau,n_x)
5 % Bsp: [fehler]=test(3*10^(-3),0.75,10,300)
7 % Input: T Endzeit fuer mikroskopische Problem
8 % Ul linker Anfangszustand
10 % n_x Anzahl mikroskopischer Ortsschritte
11 % Gitterpunkte einschliesslich Randpunkte
12 % Output: fehler Fehler zwischen globaler und lokaler Loesung
18 Time=3; % Endzeit fuer HMM-Berechnung
20 % Regularisierungsparameter und Ortsskalierung
23 % Intervall = x in [0, epsilon*1.5*n_x];
25 M = 2; % water/oil viscosity ratio
27 %%%%%%%%%%%%%%% makroskopische Ortsschrittweite %%%%%%%%%%%%%%%%%%%%%%%
30 %%%%%%%%%%% Anzahl der Schritte auf mikroskopischer Skala %%%%%%%%%%%%%
33 %%%%%%%%%%%%%%%%%%%%%%%% Anfangsdaten %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
34 [U,Ur,xfront,lR,rR,X,N_X]=HMM_AB_U0_BL(DX,Ul);
36 %%%%%%%%%%%%%%%%%%%%%%%%% Schrittweiten %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
37 [DT,N_T,dx,dt,LAMBDA]=HMM_CFL_BL(DX,Time,epsilon,M);
38 n_t=round(Tmicro/dt)-1; % Anzahl mikroskopischer Zeitschritte
40 %%% Diskretisierungsmatrix A in IR^{(nx-2)x(nx-2)}
41 a = 2+dx^2/(epsilon^2*tau);
42 c = epsilon^2*tau/(dx^2);
43 A = c*(diag(a*ones(1,n))+diag(-ones(1,n-1),1)+diag(-ones(1,n-1),-1));
45 %%% Inverse der Tridiagonalmatrix A
46 %[T]=INVERSE_TRIDIAG(A);
49 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
50 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 % 1.Schritt: stueckweise konstante Rekonstruktion von u=RU
53 [u,x,s]=HMM_REKONSTRUKTION(U,xfront,X,dx,n_x);
58 % 2.Schritt: Loesung des mikroskopischen Modells mit den Anfangsdaten u=RU
59 % auf dem mikroskopischen Gitter -> gibt Loesung u zurueck
61 for iter=1:n_t % global Loesung zum Zeitpunkt T-dt
62 [u_new,w]=HMM_MIKRO_teil(T,u,epsilon,tau,dx,dt,n_x,M);
64 if ~isequal(u_new,u_test)
65 error('timestepping inconsistent
');
77 % lokale Loesung zum Zeitpunkt T
78 [u,w,index_n]=HMM_MIKRO_teil(T,u_sicher,epsilon,tau,dx,dt,n_x,M,index);
81 % kontrolle/ global Loesung zum Zeitpunkt T
82 [u_kontrolle,w_k]=HMM_MIKRO_teil(T,u_sicher,epsilon,tau,dx,dt,n_x,M);
84 % Fehler zwischen globaler und lokaler Loesung
85 fehler = max(abs(u_kontrolle(index_n)-u));
87 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
88 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
91 figure % Plot zu u-Werten
92 plot(x,u_sicher,'g
','LineWidth
',2)
94 plot(x,u_kontrolle,'LineWidth
',2)
97 legend('globale Lsg bei T-dt
','globale Lsg bei T
','lokale Lsg bei T
')
100 figure % Plot zu w-Werten