Mercurial > repos > public > sbplib
comparison +rv/ResidualViscosity.m @ 1152:010bb2677230 feature/rv
Clean up in +rv/+time. Make the time stepping more efficient by not storing unnessecary properties in the RK-RV time steppers
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Tue, 05 Mar 2019 10:53:34 +0100 |
parents | 03ecf18d035f |
children | 2ba63553ccfc |
comparison
equal
deleted
inserted
replaced
1151:03ecf18d035f | 1152:010bb2677230 |
---|---|
22 obj.Cres = Cres; | 22 obj.Cres = Cres; |
23 obj.normalization = normalization; | 23 obj.normalization = normalization; |
24 obj.boundaryIndices = obj.getBoundaryIndices(g); | 24 obj.boundaryIndices = obj.getBoundaryIndices(g); |
25 end | 25 end |
26 | 26 |
27 function viscosity = evaluateViscosity(obj, v, dvdt) | |
28 viscosity = min(obj.Cmax*obj.h*abs(obj.waveSpeed(v)), obj.Cres*obj.h^2*abs(dvdt + obj.Df(v))./obj.normalization(v)); | |
29 % TODO: If the boundary conditions are implemented correctly, this might not be needed. | |
30 viscosity(obj.boundaryIndices) = 0; | |
31 end | |
32 | |
27 function [viscosity, Df, firstOrderViscosity, residualViscosity] = evaluate(obj, v, dvdt) | 33 function [viscosity, Df, firstOrderViscosity, residualViscosity] = evaluate(obj, v, dvdt) |
28 Df = obj.Df(v); | 34 Df = obj.Df(v); |
29 firstOrderViscosity = obj.Cmax*obj.h*abs(obj.waveSpeed(v)); | 35 firstOrderViscosity = obj.Cmax*obj.h*abs(obj.waveSpeed(v)); |
30 residualViscosity = obj.Cres*obj.h^2*abs(dvdt + Df)./obj.normalization(v); | 36 residualViscosity = obj.Cres*obj.h^2*abs(dvdt + Df)./obj.normalization(v); |
31 viscosity = min(firstOrderViscosity, residualViscosity); | 37 viscosity = min(firstOrderViscosity, residualViscosity); |
45 case 3 | 51 case 3 |
46 error; | 52 error; |
47 end | 53 end |
48 end | 54 end |
49 | 55 |
50 % function f = minmaxDiffNeighborhood(g) | |
51 % switch g.D() | |
52 % case 1 | |
53 % f = @(u)minmaxDiffNeighborhood1d(u); | |
54 % case 2 | |
55 % f = @(u)minmaxDiffNeighborhood2d(g,u); | |
56 % end | |
57 % end | |
58 | |
59 function minmaxDiff = minmaxDiffNeighborhood1d(u) | 56 function minmaxDiff = minmaxDiffNeighborhood1d(u) |
60 umax = movmax(u,3); | 57 umax = movmax(u,3); |
61 umin = movmin(u,3); | 58 umin = movmin(u,3); |
62 minmaxDiff = umax - umin; | 59 minmaxDiff = umax - umin; |
63 end | 60 end |