Mercurial > repos > public > sbplib
diff +time/CdiffNonlin.m @ 1113:47e86b5270ad feature/timesteppers
Change name of property k to dt in time.Timestepper
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Wed, 10 Apr 2019 22:40:55 +0200 |
parents | f5e14e5986b5 |
children |
line wrap: on
line diff
--- a/+time/CdiffNonlin.m Wed Apr 10 22:22:46 2019 +0200 +++ b/+time/CdiffNonlin.m Wed Apr 10 22:40:55 2019 +0200 @@ -3,7 +3,7 @@ D E S - k + dt t v v_prev @@ -12,7 +12,7 @@ methods - function obj = CdiffNonlin(D, E, S, k, t0,n0, v, v_prev) + function obj = CdiffNonlin(D, E, S, dt, t0,n0, v, v_prev) m = size(D(v),1); default_arg('E',0); default_arg('S',0); @@ -33,7 +33,7 @@ obj.D = D; obj.E = E; obj.S = S; - obj.k = k; + obj.dt = dt; obj.t = t0; obj.n = n0; obj.v = v; @@ -46,7 +46,7 @@ end function [vt,t] = getVt(obj) - vt = (obj.v-obj.v_prev)/obj.k; % Could be improved using u_tt = f(u)) + vt = (obj.v-obj.v_prev)/obj.dt; % Could be improved using u_tt = f(u)) t = obj.t; end @@ -65,12 +65,12 @@ %% Calculate matrices need for the timestep - % Before optimization: A = 1/k^2 * I - 1/(2*k)*E; - k = obj.k; + % Before optimization: A = 1/dt^2 * I - 1/(2*dt)*E; + dt = obj.dt; - Aj = 1/k^2 * I(j,j) - 1/(2*k)*E(j,j); - B = 2/k^2 * I + D; - C = -1/k^2 * I - 1/(2*k)*E; + Aj = 1/dt^2 * I(j,j) - 1/(2*dt)*E(j,j); + B = 2/dt^2 * I + D; + C = -1/dt^2 * I - 1/(2*dt)*E; %% Take the timestep v = obj.v; @@ -81,13 +81,13 @@ % Before optimization: obj.v = A\b; - obj.v(i) = k^2*b(i); + obj.v(i) = dt^2*b(i); obj.v(j) = Aj\b(j); obj.v_prev = v; %% Update state of the timestepper - obj.t = obj.t + obj.k; + obj.t = obj.t + obj.dt; obj.n = obj.n + 1; end end