Mercurial > repos > public > sbplib
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