comparison +time/MagnusMP.m @ 505:49bc2929dfb1 feature/quantumTriangles

Added the midpont magnus exponential integrator
author Ylva Rydin <ylva.rydin@telia.com>
date Thu, 18 May 2017 11:44:29 +0200
parents
children bc39bb984d88
comparison
equal deleted inserted replaced
504:7fe1782d5224 505:49bc2929dfb1
1 classdef MagnusMP < time.Timestepper
2 properties
3 D
4 S
5 F
6 k
7 t
8 v
9 m
10 n
11 end
12
13
14 methods
15 function obj = MagnusMP(D, k, t0, v0)
16 obj.D = D;
17 obj.k = k;
18 obj.t = t0;
19 obj.v = v0;
20 obj.m = length(v0);
21 obj.n = 0;
22 end
23
24 function [v,t] = getV(obj)
25 v = obj.v;
26 t = obj.t;
27 end
28
29 function obj = step(obj)
30 obj.v = time.expint.Magnus_mp(obj.v,obj.D, obj.t, obj.k);
31 obj.t = obj.t + obj.k;
32 obj.n = obj.n + 1;
33 end
34 end
35
36
37 methods (Static)
38 function k = getTimeStep(lambda)
39 k = rk4.get_rk4_time_step(lambda);
40 end
41 end
42
43 end