Mercurial > repos > public > sbplib
diff +rv/+time/RungekuttaInteriorRv.m @ 1031:2ef20d00b386 feature/advectionRV
For easier comparison, return both the first order and residual viscosity when evaluating the residual. Add the first order and residual viscosity to the state of the RungekuttaRV time steppers
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Thu, 17 Jan 2019 10:25:06 +0100 |
parents | 78c75c95b7dd |
children | 010bb2677230 |
line wrap: on
line diff
--- a/+rv/+time/RungekuttaInteriorRv.m Fri Jan 11 15:52:48 2019 +0100 +++ b/+rv/+time/RungekuttaInteriorRv.m Thu Jan 17 10:25:06 2019 +0100 @@ -7,12 +7,14 @@ n % Time level coeffs % The coefficents used for the RK time integration RV % Residual Viscosity - viscosity % Viscosity vector - DvDt % Function for computing the time deriative used for the RV evaluation + DvDt % Function for computing the time deriative used for the RV evaluation - residual - dvdt - Df + % Convenience properties. Only for plotting + viscosity % Total viscosity + residualViscosity % Residual viscosity + firstOrderViscosity % first order viscosity + dvdt % Evaluated time derivative in residual + Df % Evaluated flux in residual end methods @@ -29,8 +31,7 @@ obj.RV = RV; obj.DvDt = DvDt; obj.dvdt = obj.DvDt(obj.v); - [obj.viscosity, obj.Df] = obj.RV.evaluate(obj.v,obj.dvdt); - obj.residual = obj.dvdt + obj.Df; + [obj.viscosity, obj.Df, obj.firstOrderViscosity, obj.residualViscosity] = obj.RV.evaluate(obj.v,obj.dvdt); end function [v, t] = getV(obj) @@ -39,7 +40,7 @@ end function state = getState(obj) - state = struct('v', obj.v, 'residual', obj.residual, 'dvdt', obj.dvdt, 'Df', obj.Df, 'viscosity', obj.viscosity, 't', obj.t); + state = struct('v', obj.v, 'dvdt', obj.dvdt, 'Df', obj.Df, 'viscosity', obj.viscosity, 'residualViscosity', obj.residualViscosity, 'firstOrderViscosity', obj.firstOrderViscosity, 't', obj.t); end function obj = step(obj) @@ -47,8 +48,7 @@ obj.t = obj.t + obj.k; obj.n = obj.n + 1; obj.dvdt = obj.DvDt(obj.v); - [obj.viscosity, obj.Df] = obj.RV.evaluate(obj.v,obj.dvdt); - obj.residual = obj.dvdt + obj.Df; + [obj.viscosity, obj.Df, obj.firstOrderViscosity, obj.residualViscosity] = obj.RV.evaluate(obj.v,obj.dvdt); end end end \ No newline at end of file