annotate +scheme/Beam.m @ 236:8592358a3935 feature/beams

Beam: Added tuning as a parameter to contructor.
author Jonatan Werpers <jonatan@werpers.com>
date Fri, 15 Jul 2016 11:22:12 +0200
parents d6344b549081
children ba56e0d621f2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
175
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 classdef Beam < scheme.Scheme
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 properties
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 order % Order accuracy for the approximation
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4 grid
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6 D % non-stabalized scheme operator
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 alpha
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9 H % Discrete norm
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10 Hi
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12 e_l, e_r
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13 d1_l, d1_r
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
14 d2_l, d2_r
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15 d3_l, d3_r
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16 gamm
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17 delt
236
8592358a3935 Beam: Added tuning as a parameter to contructor.
Jonatan Werpers <jonatan@werpers.com>
parents: 235
diff changeset
18 interface_tuning
175
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19 end
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
21 methods
236
8592358a3935 Beam: Added tuning as a parameter to contructor.
Jonatan Werpers <jonatan@werpers.com>
parents: 235
diff changeset
22 function obj = Beam(grid, order, alpha, opsGen, interface_tuning)
8592358a3935 Beam: Added tuning as a parameter to contructor.
Jonatan Werpers <jonatan@werpers.com>
parents: 235
diff changeset
23 default_arg('alpha', -1);
8592358a3935 Beam: Added tuning as a parameter to contructor.
Jonatan Werpers <jonatan@werpers.com>
parents: 235
diff changeset
24 default_arg('interface_tuning', 1.1);
8592358a3935 Beam: Added tuning as a parameter to contructor.
Jonatan Werpers <jonatan@werpers.com>
parents: 235
diff changeset
25
232
443b14ea705b scheme.Beam: changes to possibly better operators.
Jonatan Werpers <jonatan@werpers.com>
parents: 224
diff changeset
26 % default_arg('opsGen', @sbp.Higher);
443b14ea705b scheme.Beam: changes to possibly better operators.
Jonatan Werpers <jonatan@werpers.com>
parents: 224
diff changeset
27 default_arg('opsGen', @sbp.HigherCompatibleVariable); % Supposed to be better
175
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
28
176
d095b5396103 Fixed some bugs in Beam schemes.
Jonatan Werpers <jonatan@werpers.com>
parents: 175
diff changeset
29 if ~isa(grid, 'grid.Cartesian') || grid.D() ~= 1
175
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
30 error('Grid must be 1d cartesian');
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
31 end
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
32
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33 obj.grid = grid;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
34 obj.order = order;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
35 obj.alpha = alpha;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
36
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
37 m = grid.m;
176
d095b5396103 Fixed some bugs in Beam schemes.
Jonatan Werpers <jonatan@werpers.com>
parents: 175
diff changeset
38 h = grid.scaling();
175
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
39
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
40 ops = opsGen(m, h, order);
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
41
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
42 I = speye(m);
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
43
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
44 D4 = sparse(ops.derivatives.D4);
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
45 obj.H = sparse(ops.norms.H);
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
46 obj.Hi = sparse(ops.norms.HI);
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
47 obj.e_l = sparse(ops.boundary.e_1);
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
48 obj.e_r = sparse(ops.boundary.e_m);
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
49 obj.d1_l = sparse(ops.boundary.S_1);
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
50 obj.d1_r = sparse(ops.boundary.S_m);
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
51 obj.d2_l = sparse(ops.boundary.S2_1);
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
52 obj.d2_r = sparse(ops.boundary.S2_m);
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
53 obj.d3_l = sparse(ops.boundary.S3_1);
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
54 obj.d3_r = sparse(ops.boundary.S3_m);
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
55
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
56 obj.D = alpha*D4;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
57
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
58 obj.gamm = h*ops.borrowing.N.S2/2;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
59 obj.delt = h^3*ops.borrowing.N.S3/2;
236
8592358a3935 Beam: Added tuning as a parameter to contructor.
Jonatan Werpers <jonatan@werpers.com>
parents: 235
diff changeset
60 obj.interface_tuning = interface_tuning;
175
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
61 end
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
62
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
63
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
64 % Closure functions return the opertors applied to the own doamin to close the boundary
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
65 % Penalty functions return the opertors to force the solution. In the case of an interface it returns the operator applied to the other doamin.
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
66 % boundary is a string specifying the boundary e.g. 'l','r' or 'e','w','n','s'.
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
67 % type is a string specifying the type of boundary condition if there are several.
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
68 % neighbour_scheme is an instance of Scheme that should be interfaced to.
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
69 % neighbour_boundary is a string specifying which boundary to interface to.
220
5df8d20281fe Made scheme boundary_condition return a cell array of penalties if there are several of them.
Jonatan Werpers <jonatan@werpers.com>
parents: 176
diff changeset
70 function [closure, penalty] = boundary_condition(obj,boundary,type)
175
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
71 default_arg('type','dn');
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
72
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
73 [e, d1, d2, d3, s] = obj.get_boundary_ops(boundary);
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
74 gamm = obj.gamm;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
75 delt = obj.delt;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
76
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
77 switch type
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
78 case {'dn'} % Dirichlet-neumann boundary condition
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
79 alpha = obj.alpha;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
80
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
81 % tau1 < -alpha^2/gamma
220
5df8d20281fe Made scheme boundary_condition return a cell array of penalties if there are several of them.
Jonatan Werpers <jonatan@werpers.com>
parents: 176
diff changeset
82 % tuning = 2;
175
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
83 tuning = 1.1;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
84
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
85 tau1 = tuning * alpha/delt;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
86 tau4 = s*alpha;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
87
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
88 sig2 = tuning * alpha/gamm;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
89 sig3 = -s*alpha;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
90
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
91 tau = tau1*e+tau4*d3;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
92 sig = sig2*d1+sig3*d2;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
93
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
94 closure = obj.Hi*(tau*e' + sig*d1');
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
95
223
96dedf892910 Fixed sign error in beam BC penalties.
Jonatan Werpers <jonatan@werpers.com>
parents: 220
diff changeset
96 penalty{1} = -obj.Hi*tau;
96dedf892910 Fixed sign error in beam BC penalties.
Jonatan Werpers <jonatan@werpers.com>
parents: 220
diff changeset
97 penalty{2} = -obj.Hi*sig;
175
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
98 otherwise % Unknown, boundary condition
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
99 error('No such boundary condition: type = %s',type);
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
100 end
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
101 end
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
102
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
103 function [closure, penalty] = interface(obj,boundary,neighbour_scheme,neighbour_boundary)
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
104 % u denotes the solution in the own domain
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
105 % v denotes the solution in the neighbour domain
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
106 [e_u,d1_u,d2_u,d3_u,s_u] = obj.get_boundary_ops(boundary);
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
107 [e_v,d1_v,d2_v,d3_v,s_v] = neighbour_scheme.get_boundary_ops(neighbour_boundary);
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
108
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
109 gamm_u = obj.gamm;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
110 delt_u = obj.delt;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
111
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
112 gamm_v = neighbour_scheme.gamm;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
113 delt_v = neighbour_scheme.delt;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
114
236
8592358a3935 Beam: Added tuning as a parameter to contructor.
Jonatan Werpers <jonatan@werpers.com>
parents: 235
diff changeset
115 tuning = obj.interface_tuning;
8592358a3935 Beam: Added tuning as a parameter to contructor.
Jonatan Werpers <jonatan@werpers.com>
parents: 235
diff changeset
116
175
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
117
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
118 alpha_u = obj.alpha;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
119 alpha_v = neighbour_scheme.alpha;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
120
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
121 tau1 = ((alpha_u/2)/delt_u + (alpha_v/2)/delt_v)/2*tuning;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
122 % tau1 = (alpha_u/2 + alpha_v/2)/(2*delt_u)*tuning;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
123 tau4 = s_u*alpha_u/2;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
124
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
125 sig2 = ((alpha_u/2)/gamm_u + (alpha_v/2)/gamm_v)/2*tuning;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
126 sig3 = -s_u*alpha_u/2;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
127
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
128 phi2 = s_u*1/2;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
129
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
130 psi1 = -s_u*1/2;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
131
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
132 tau = tau1*e_u + tau4*d3_u;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
133 sig = sig2*d1_u + sig3*d2_u ;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
134 phi = phi2*d1_u ;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
135 psi = psi1*e_u ;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
136
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
137 closure = obj.Hi*(tau*e_u' + sig*d1_u' + phi*alpha_u*d2_u' + psi*alpha_u*d3_u');
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
138 penalty = -obj.Hi*(tau*e_v' + sig*d1_v' + phi*alpha_v*d2_v' + psi*alpha_v*d3_v');
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
139 end
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
140
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
141 % Returns the boundary ops and sign for the boundary specified by the string boundary.
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
142 % The right boundary is considered the positive boundary
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
143 function [e, d1, d2, d3, s] = get_boundary_ops(obj,boundary)
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
144 switch boundary
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
145 case 'l'
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
146 e = obj.e_l;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
147 d1 = obj.d1_l;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
148 d2 = obj.d2_l;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
149 d3 = obj.d3_l;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
150 s = -1;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
151 case 'r'
176
d095b5396103 Fixed some bugs in Beam schemes.
Jonatan Werpers <jonatan@werpers.com>
parents: 175
diff changeset
152 e = obj.e_r;
d095b5396103 Fixed some bugs in Beam schemes.
Jonatan Werpers <jonatan@werpers.com>
parents: 175
diff changeset
153 d1 = obj.d1_r;
d095b5396103 Fixed some bugs in Beam schemes.
Jonatan Werpers <jonatan@werpers.com>
parents: 175
diff changeset
154 d2 = obj.d2_r;
d095b5396103 Fixed some bugs in Beam schemes.
Jonatan Werpers <jonatan@werpers.com>
parents: 175
diff changeset
155 d3 = obj.d3_r;
175
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
156 s = 1;
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
157 otherwise
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
158 error('No such boundary: boundary = %s',boundary);
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
159 end
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
160 end
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
161
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
162 function N = size(obj)
224
05304d7792dc Fixed type in scheme.Beam
Jonatan Werpers <jonatan@werpers.com>
parents: 223
diff changeset
163 N = obj.grid.N;
175
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
164 end
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
165
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
166 end
8f22829b69d0 Added and upgraded schemes for the beam equation in 1d and 2d.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
167 end