diff --git a/Sheet6/Ex6C.m b/Sheet6/Ex6C.m index 0e89d77..ba1dfb4 100644 --- a/Sheet6/Ex6C.m +++ b/Sheet6/Ex6C.m @@ -30,9 +30,16 @@ for it = 1:nIter %Jump in convection-diffusion flux Jl = -ul + p*u(j); Jr = -ur + p*u(j); + % GH + % JL = (u(j)-u(j-1))/(x(j)-x(j-1))*(x(j)-x(j-1)); + % JR = (u(j+1)-u(j))/(x(j+1)-x(j))*(x(j+1)-x(j)); + % HG eta(j) = abs(Jr - Jl); + %GH eta(j) = abs(Jr - Jl)*sqrt((x(j)-x(j-1))*(x(j+1)-x(j))); + %GH eta(j) = abs(Jr - Jl)*sqrt(max((x(j)-x(j-1)),(x(j+1)-x(j)))); end x = r_adapt(x, eta); + % end end @@ -41,3 +48,8 @@ plot(x,u,'-o','LineWidth',1.5) xlabel('x'), ylabel('u') title(['Ex6C, r-adaptivity, Péclet p = ',num2str(p)]) grid on +% GH +hold on +fplot(@(x) (exp(p*x)-1)/(exp(p)-1),[0,1]) +% Finalize the plot with the exact solution for comparison +legend('Numerical Solution', 'Exact Solution', 'Location', 'Best'); diff --git a/Sheet6/Sheet6.pdf b/Sheet6/Sheet6.pdf index e5c5e09..81f3594 100644 Binary files a/Sheet6/Sheet6.pdf and b/Sheet6/Sheet6.pdf differ diff --git a/Sheet6/gh_response.txt b/Sheet6/gh_response.txt index c728563..fd533d6 100644 --- a/Sheet6/gh_response.txt +++ b/Sheet6/gh_response.txt @@ -13,4 +13,4 @@ B: C: * r-adaptivity looks suspicious, but similar to Mandl - + cumsum in r_adapt() not correct, but exact cumsum results in wrong solution behavior diff --git a/Sheet6/r_adapt.m b/Sheet6/r_adapt.m index bab7ee1..01fcbde 100644 --- a/Sheet6/r_adapt.m +++ b/Sheet6/r_adapt.m @@ -3,7 +3,8 @@ N = length(x); w = abs(eta_elem) + 1e-10; %error based monitor function s = zeros(N,1); for i = 2:N - s(i) = s(i-1) + w(i-1); %cumulative sum + s(i) = s(i-1) + w(i-1); %cumulative sum % LP + % s(i) = s(i-1) + w(i); %cumulative sum % GH end s = s / s(end); % normalize to [0,1] s_new = linspace(0,1,N)';