Mercurial > repos > public > sbplib
diff +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 |
line wrap: on
line diff
--- a/+scheme/Beam.m Fri Nov 03 10:43:27 2017 +0100 +++ b/+scheme/Beam.m Fri Nov 03 10:53:15 2017 +0100 @@ -90,6 +90,9 @@ gamm = obj.gamm; delt = obj.delt; + + % TODO: Can this be simplifed? Can I handle conditions on u on its own, u_x on its own ... + switch type case {'dn', 'clamped'} % Dirichlet-neumann boundary condition alpha = obj.alpha; @@ -123,6 +126,44 @@ penalty{1} = -obj.Hi*tau; penalty{1} = -obj.Hi*sig; + case 'e' + alpha = obj.alpha; + tuning = 1.1; + + tau1 = tuning * alpha/delt; + tau4 = s*alpha; + + tau = tau1*e+tau4*d3; + + closure = obj.Hi*tau*e'; + penalty = -obj.Hi*tau; + case 'd1' + alpha = obj.alpha; + + tuning = 1.1; + + sig2 = tuning * alpha/gamm; + sig3 = -s*alpha; + + sig = sig2*d1+sig3*d2; + + closure = obj.Hi*sig*d1'; + penalty = -obj.Hi*sig; + + case 'd2' + a = obj.alpha; + + tau = s*a*d1; + + closure = obj.Hi*tau*d2'; + penalty = -obj.Hi*tau; + case 'd3' + a = obj.alpha; + + sig = -s*a*e; + + closure = obj.Hi*sig*d3'; + penalty = -obj.Hi*sig; otherwise % Unknown, boundary condition error('No such boundary condition: type = %s',type);