1 function [LL_I, LL_E, bb, K_II, K_IE, K_EE, m_I, m_E, m ] = ...
2 dune_lin_evol_rb_operators(model, detailed_data)
4 decomp_mode = model.decomp_mode;
7 dLL_I = model.coeff_ops.LL_I_ptr(model.mu);
8 dLL_E = model.coeff_ops.LL_E_ptr(model.mu);
9 dbb = model.coeff_ops.bb_ptr(model.mu);
10 % model.mexptr('set_mu', model.mu);
11 % foo = model.mexptr('rb_operators', decomp_mode);
16 % kron(dLL_I,dLL_E) == foo{6}
17 % kron(dLL_E,dbb) == foo{8}
18 % kron(dbb,dbb) == foo{9}
22 K_II = [1, dLL_I, dLL_I, kron(dLL_I,dLL_I) ];
23 K_EE = [1, dLL_E, dLL_E, kron(dLL_E,dLL_E) ];
24 K_IE = [1, dLL_I, dLL_E, kron(dLL_I,dLL_E) ];
25 m_I = [dbb, kron(dLL_I,dbb) ];
26 m_E = [dbb, kron(dLL_E,dbb) ];
29 foo = model.mexptr(
'rb_operators', decomp_mode);
42 func2 = @(X) model.dt * X;
43 func2t = @(X) model.dt * X
';
44 func3 = @(X) model.dt.^2 * X;
46 identity = speye(size(dLL_I{1}));
48 LL_I = [{identity}; ...
49 cellfun(func2 , dLL_I, 'UniformOutput
', false)];
51 LL_E = [{identity}; ...
52 cellfun(func2 , dLL_E, 'UniformOutput
', false)];
54 bb = cellfun(func2 , dbb , 'UniformOutput
', false);
56 K_II = [{identity}; ...
57 cellfun(func2t, dLL_I, 'UniformOutput
', false); ...
58 cellfun(func2 , dLL_I, 'UniformOutput
', false); ...
59 cellfun(func3 , dK_II, 'UniformOutput
', false)];
61 K_EE = [{identity}; ...
62 cellfun(func2t, dLL_E, 'UniformOutput
', false); ...
63 cellfun(func2 , dLL_E, 'UniformOutput
', false); ...
64 cellfun(func3 , dK_EE, 'UniformOutput
', false)];
66 K_IE = [{identity}; ...
67 cellfun(func2t, dLL_I, 'UniformOutput
', false); ...
68 cellfun(func2 , dLL_E, 'UniformOutput
', false); ...
69 cellfun(func3 , dK_IE, 'UniformOutput
', false)];
72 cellfun(func3 , dm_I , 'UniformOutput
', false)];
75 cellfun(func3 , dm_E , 'UniformOutput
', false)];
77 m = cellfun(func3 , dm , 'UniformOutput
', false);
79 else % decomp_mode == 0
80 LL_I = 1 + model.dt * dLL_I;
81 LL_E = 1 + model.dt * dLL_E;
83 K_II = 1 + model.dt * dLL_I' + model.dt * dLL_I + model.dt^2 * dK_II;
84 K_EE = 1 + model.dt * dLL_E
' + model.dt * dLL_E + model.dt^2 * dK_EE;
85 K_IE = 1 + model.dt * dLL_I' + model.dt * dLL_E + model.dt^2 * dK_IE;
86 m_I = model.dt * dbb + model.dt^2 * dm_I;
87 m_E = model.dt * dbb + model.dt^2 * dm_E;