Mercurial > repos > public > sbplib
changeset 961:2efeedf8c34f feature/poroelastic
Make ElasticVariable2d.boundary_condition use get_boundary_operator for penalty strength.
author | Martin Almquist <malmquist@stanford.edu> |
---|---|
date | Mon, 17 Dec 2018 21:07:59 -0800 |
parents | ac566f3dc9b3 |
children | 262b52c3f268 |
files | +scheme/Elastic2dVariable.m |
diffstat | 1 files changed, 2 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
diff -r ac566f3dc9b3 -r 2efeedf8c34f +scheme/Elastic2dVariable.m --- a/+scheme/Elastic2dVariable.m Mon Dec 17 20:06:50 2018 -0800 +++ b/+scheme/Elastic2dVariable.m Mon Dec 17 21:07:59 2018 -0800 @@ -349,24 +349,12 @@ % Dirichlet boundary condition case {'D','d','dirichlet','Dirichlet'} - theta_R = obj.theta_R{j}; - theta_H = obj.theta_H{j}; - theta_M = obj.theta_M{j}; - - a_lambda = dim/theta_H + 1/theta_R; - a_mu_i = 2/theta_M; - a_mu_ij = 2/theta_H + 1/theta_R; - - d = @kroneckerDelta; % Kronecker delta - db = @(i,j) 1-d(i,j); % Logical not of Kronecker delta - alpha = @(i,j) tuning*( d(i,j)* a_lambda*LAMBDA ... - + d(i,j)* a_mu_i*MU ... - + db(i,j)*a_mu_ij*MU ); + alpha = obj.get_boundary_operator('alpha', boundary); % Loop over components that Dirichlet penalties end up on for i = 1:dim C = transpose(T{k,i}); - A = -d(i,k)*alpha(i,j); + A = -alpha{i,k}; B = A + e*C; closure = closure + E{i}*RHOi*Hi*B'*e*H_gamma*(e'*E{k}' ); penalty = penalty - E{i}*RHOi*Hi*B'*e*H_gamma;