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