Mercurial > repos > public > sbplib
comparison +scheme/Beam.m @ 704:111fcbcff2e9 feature/optim
merg with featuew grids
author | Ylva Rydin <ylva.rydin@telia.com> |
---|---|
date | Fri, 03 Nov 2017 10:53:15 +0100 |
parents | 4ced7d47bd1f |
children | 459eeb99130f |
comparison
equal
deleted
inserted
replaced
703:027f606fa691 | 704:111fcbcff2e9 |
---|---|
88 | 88 |
89 [e, d1, d2, d3, s] = obj.get_boundary_ops(boundary); | 89 [e, d1, d2, d3, s] = obj.get_boundary_ops(boundary); |
90 gamm = obj.gamm; | 90 gamm = obj.gamm; |
91 delt = obj.delt; | 91 delt = obj.delt; |
92 | 92 |
93 | |
94 % TODO: Can this be simplifed? Can I handle conditions on u on its own, u_x on its own ... | |
95 | |
93 switch type | 96 switch type |
94 case {'dn', 'clamped'} % Dirichlet-neumann boundary condition | 97 case {'dn', 'clamped'} % Dirichlet-neumann boundary condition |
95 alpha = obj.alpha; | 98 alpha = obj.alpha; |
96 | 99 |
97 % tau1 < -alpha^2/gamma | 100 % tau1 < -alpha^2/gamma |
121 | 124 |
122 closure = obj.Hi*(tau*d2' + sig*d3'); | 125 closure = obj.Hi*(tau*d2' + sig*d3'); |
123 penalty{1} = -obj.Hi*tau; | 126 penalty{1} = -obj.Hi*tau; |
124 penalty{1} = -obj.Hi*sig; | 127 penalty{1} = -obj.Hi*sig; |
125 | 128 |
129 case 'e' | |
130 alpha = obj.alpha; | |
131 tuning = 1.1; | |
132 | |
133 tau1 = tuning * alpha/delt; | |
134 tau4 = s*alpha; | |
135 | |
136 tau = tau1*e+tau4*d3; | |
137 | |
138 closure = obj.Hi*tau*e'; | |
139 penalty = -obj.Hi*tau; | |
140 case 'd1' | |
141 alpha = obj.alpha; | |
142 | |
143 tuning = 1.1; | |
144 | |
145 sig2 = tuning * alpha/gamm; | |
146 sig3 = -s*alpha; | |
147 | |
148 sig = sig2*d1+sig3*d2; | |
149 | |
150 closure = obj.Hi*sig*d1'; | |
151 penalty = -obj.Hi*sig; | |
152 | |
153 case 'd2' | |
154 a = obj.alpha; | |
155 | |
156 tau = s*a*d1; | |
157 | |
158 closure = obj.Hi*tau*d2'; | |
159 penalty = -obj.Hi*tau; | |
160 case 'd3' | |
161 a = obj.alpha; | |
162 | |
163 sig = -s*a*e; | |
164 | |
165 closure = obj.Hi*sig*d3'; | |
166 penalty = -obj.Hi*sig; | |
126 | 167 |
127 otherwise % Unknown, boundary condition | 168 otherwise % Unknown, boundary condition |
128 error('No such boundary condition: type = %s',type); | 169 error('No such boundary condition: type = %s',type); |
129 end | 170 end |
130 end | 171 end |