Mercurial > repos > public > sbplib
changeset 667:ed853945ee99 feature/poroelastic
Make free BC work with data. Bugfix domain size.
author | Martin Almquist <malmquist@stanford.edu> |
---|---|
date | Wed, 20 Dec 2017 06:52:17 +0100 |
parents | 8e6dfd22fc59 |
children | 43ea848b6aa1 |
files | +scheme/elasticShearVariable.m |
diffstat | 1 files changed, 12 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/+scheme/elasticShearVariable.m Fri Dec 15 16:23:10 2017 -0800 +++ b/+scheme/elasticShearVariable.m Wed Dec 20 06:52:17 2017 +0100 @@ -44,11 +44,12 @@ m_tot = g.N(); h = g.scaling(); + L = (m-1).*h; % 1D operators ops = cell(dim,1); for i = 1:dim - ops{i} = opSet(m(i), {0, 1}, order); + ops{i} = opSet(m(i), {0, L(i)}, order); end I = cell(dim,1); @@ -230,17 +231,23 @@ % Free boundary condition case {'F','f','Free','free'} - closure = sparse(obj.dim*obj.grid.N,obj.dim*obj.grid.N); - penalty = sparse(obj.dim*obj.grid.N,obj.dim*obj.grid.N); + closures = cell(obj.dim,1); + penalties = cell(obj.dim,1); % Loop over components for i = 1:obj.dim - closure = closure + E{i}*inv(RHO)*(-nj)*Hi*e{j}*H_gamma*(... + closures{i} = E{i}*inv(RHO)*(-nj)*Hi*e{j}*H_gamma*(... e{j}'*A*e{j}*d{j}'*E{i}' + ... delta(i,j)*e{j}'*A*e{i}*d{i}'*E{j}' + ... delta_b(i,j)*e{j}'*A*D1{i}*E{j}' ... ); - penalty = penalty - E{i}*inv(RHO)*(-nj)*Hi*e{j}*H_gamma*e{j}'*E{j}'; + penalties{i} = - E{i}*inv(RHO)*(-nj)*Hi*e{j}*H_gamma; end + [rows, cols] = size(closures{1}); + closure = sparse(rows, cols); + for i = 1:obj.dim + closure = closure + closures{i}; + end + penalty = penalties; % Unknown boundary condition