changeset 1039:a8ee5eca0e6c feature/burgers1d

Allow for the residual normalization function to return a vector. Also change the default normalization from normalizing on norm(u-mean(u),inf) to norm(u/2), since this proved to be better for 1d burgers
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Fri, 18 Jan 2019 09:06:20 +0100
parents 8537fdd6830a
children 85a311344978 fa76379f5147
files +rv/ResidualViscosity.m
diffstat 1 files changed, 2 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/+rv/ResidualViscosity.m	Fri Jan 18 09:04:38 2019 +0100
+++ b/+rv/ResidualViscosity.m	Fri Jan 18 09:06:20 2019 +0100
@@ -13,7 +13,7 @@
         %  TBD: Decide on how to treat waveSpeed. It would be nice to just pass a constant value without
         %       wrapping it in a function.
         function obj = ResidualViscosity(Df, waveSpeed, Cmax, Cres, h, normalization)
-            default_arg('normalization',@(v)norm(v-mean(v),inf));
+            default_arg('normalization',@(v)norm(v/2,inf));
             obj.Df = Df;
             obj.waveSpeed = waveSpeed;
             obj.h = h;
@@ -25,9 +25,8 @@
         function [viscosity, Df, firstOrderViscosity, residualViscosity] = evaluate(obj, v, dvdt)
             Df = obj.Df(v);
             firstOrderViscosity = obj.Cmax*obj.h*abs(obj.waveSpeed(v));
-            residualViscosity = obj.Cres*obj.h^2*abs(dvdt + Df)/obj.normalization(v);
+            residualViscosity = obj.Cres*obj.h^2*abs(dvdt + Df)./obj.normalization(v);
             viscosity = min(firstOrderViscosity, residualViscosity);
-            %viscosity = obj.Cmax*obj.h*abs(obj.waveSpeed(v));
         end
     end
 end
\ No newline at end of file