comparison +scheme/ViscoElastic2d.m @ 1309:f59b849df30f feature/poroelastic

Add displacement BC to viscoelastic
author Martin Almquist <malmquist@stanford.edu>
date Mon, 20 Jul 2020 17:45:58 -0700
parents 5016f3f3badb
children eb015fe9605b
comparison
equal deleted inserted replaced
1308:5016f3f3badb 1309:f59b849df30f
264 H_gamma = obj.getBoundaryQuadratureForScalarField(boundary); 264 H_gamma = obj.getBoundaryQuadratureForScalarField(boundary);
265 e = obj.getBoundaryOperatorForScalarField('e', boundary); 265 e = obj.getBoundaryOperatorForScalarField('e', boundary);
266 266
267 H = obj.H; 267 H = obj.H;
268 RHO = obj.RHO; 268 RHO = obj.RHO;
269 ETA = obj.ETA;
269 C = obj.C; 270 C = obj.C;
270 Eu = obj.Eu; 271 Eu = obj.Eu;
271 eU = obj.eU; 272 eU = obj.eU;
272 eGamma = obj.eGamma; 273 eGamma = obj.eGamma;
273 274
299 end 300 end
300 end 301 end
301 end 302 end
302 end 303 end
303 304
305 case {'D','d','dirichlet','Dirichlet','displacement','Displacement'}
306
307 % Get elastic closure and penalty
308 [closure, penalty] = obj.elasticObj.boundary_condition(boundary, bc, tuning);
309 closure = Eu*closure*Eu';
310 penalty = Eu*penalty;
311
312 % Add penalty to strain rate eq
313 l = component;
314 for i = 1:dim
315 for j = 1:dim
316 for k = 1:dim
317 closure = closure - eGamma{i,j}*( (H*ETA)\(C{i,j,k,l}*e*H_gamma*n{k}*e'*eU{l}') );
318 penalty = penalty + eGamma{i,j}*( (H*ETA)\(C{i,j,k,l}*e*H_gamma*n{k}) );
319 end
320 end
321 end
322
304 end 323 end
305 324
306 end 325 end
307 326
308 function [closure, penalty] = displacementBCNormalTangential(obj, boundary, bc, tuning) 327 function [closure, penalty] = displacementBCNormalTangential(obj, boundary, bc, tuning)