Mercurial > repos > public > sbplib
changeset 1193:921595039ab8 feature/rv
Add options for postprocessing RV
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Mon, 29 Jul 2019 16:44:21 +0200 |
parents | b3c47a716d57 |
children | bd5383809917 |
files | +rv/ResidualViscosity.m |
diffstat | 1 files changed, 7 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/+rv/ResidualViscosity.m Mon Jul 29 16:43:39 2019 +0200 +++ b/+rv/ResidualViscosity.m Mon Jul 29 16:44:21 2019 +0200 @@ -14,11 +14,11 @@ end methods + % TODO: pass opt struct with waveSpeed, normalization etc. % 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(g, Df, waveSpeed, Cmax, Cres, h, normalization, postProcess) - default_arg('normalization',@(v)abs(obj.minmaxDiffNeighborhood1d(v)-norm(v-mean(v),inf))); - default_arg('postProcess','maximum neighbors'); + %default_arg('normalization',@(v)abs(obj.minmaxDiffNeighborhood1d(v)-norm(v-mean(v),inf))); obj.Df = Df; obj.waveSpeed = waveSpeed; obj.h = h; @@ -30,14 +30,15 @@ obj.Mres = obj.Cres*obj.h^2; obj.Mfirst = obj.Cmax*obj.h; switch postProcess - case 'none' + case {'', 'none'} obj.fRes = @(v,dvdt) obj.Mres*abs(dvdt + obj.Df(v))./obj.normalization(v); - case 'filter' - order = 4; + case {'filt', 'filter'} + % TBD: Keep? + order = F = obj.shapiroFilter(obj.g, order); obj.Mres = F*obj.Mres; obj.fRes = @(v,dvdt) obj.Mres*abs(dvdt + obj.Df(v))./obj.normalization(v); - case 'maximum neighbors' + case {'max', 'maximum neighbors'} switch g.D() case 1 obj.fRes = @(v,dvdt) movmax(obj.Mres*abs(dvdt + obj.Df(v))./obj.normalization(v),3);