comparison +scheme/LaplaceCurvilinearVirtaMin.m @ 1138:afd06a84b69c feature/laplace_curvilinear_test

Bugfixes in VirtaMin.interfaceStandard()
author Martin Almquist <malmquist@stanford.edu>
date Mon, 10 Jun 2019 14:39:14 +0200
parents 2ff1f366e64a
children 91058813b6e7
comparison
equal deleted inserted replaced
1137:2ff1f366e64a 1138:afd06a84b69c
386 mx = v.m(1); 386 mx = v.m(1);
387 my = v.m(2); 387 my = v.m(2);
388 bp = v.bp; 388 bp = v.bp;
389 389
390 lambda_mat = reshape(lambda_v, my, mx); 390 lambda_mat = reshape(lambda_v, my, mx);
391 switch boundary 391 switch neighbour_boundary
392 case 'w' 392 case 'w'
393 lambda_min = min(lambda_mat(:,1:bp), [], 2); 393 lambda_min = min(lambda_mat(:,1:bp), [], 2);
394 lambda_mat = repmat(lambda_min, 1, mx); 394 lambda_mat = repmat(lambda_min, 1, mx);
395 case 'e' 395 case 'e'
396 lambda_min = min(lambda_mat(:,end-bp+1:end), [], 2); 396 lambda_min = min(lambda_mat(:,end-bp+1:end), [], 2);
404 end 404 end
405 lambda_min_v = lambda_mat(:); 405 lambda_min_v = lambda_mat(:);
406 406
407 switch boundary 407 switch boundary
408 case {'w', 'e'} 408 case {'w', 'e'}
409 b1_u = gamm_u*u.lambda_min_u(I_u)./u.a11(I_u).^2; 409 b1_u = gamm_u*lambda_min_u(I_u)./u.a11(I_u).^2;
410 b2_u = h11_u *u.lambda(I_u)./u.a22(I_u).^2; 410 b2_u = h11_u *lambda_u(I_u)./u.a22(I_u).^2;
411 case {'s', 'n'} 411 case {'s', 'n'}
412 b1_u = h11_u *u.lambda(I_u)./u.a11(I_u).^2; 412 b1_u = h11_u *lambda_u(I_u)./u.a11(I_u).^2;
413 b2_u = gamm_u*u.lambda_min(I_u)./u.a22(I_u).^2; 413 b2_u = gamm_u*lambda_min_u(I_u)./u.a22(I_u).^2;
414 end 414 end
415 415
416 switch neighbour_boundary 416 switch neighbour_boundary
417 case {'w', 'e'} 417 case {'w', 'e'}
418 b1_v = gamm_v*v.lambda_min_v(I_v)./v.a11(I_v).^2; 418 b1_v = gamm_v*lambda_min_v(I_v)./v.a11(I_v).^2;
419 b2_v = h11_v *v.lambda(I_v)./v.a22(I_v).^2; 419 b2_v = h11_v *lambda_v(I_v)./v.a22(I_v).^2;
420 case {'s', 'n'} 420 case {'s', 'n'}
421 b1_v = h11_v *v.lambda(I_v)./v.a11(I_v).^2; 421 b1_v = h11_v *lambda_v(I_v)./v.a11(I_v).^2;
422 b2_v = gamm_v*v.lambda_min(I_v)./v.a22(I_v).^2; 422 b2_v = gamm_v*lambda_min_v(I_v)./v.a22(I_v).^2;
423 end 423 end
424 424
425 tau1 = -1./(4*b1_u) -1./(4*b1_v) -1./(4*b2_u) -1./(4*b2_v); 425 tau1 = -1./(4*b1_u) -1./(4*b1_v) -1./(4*b2_u) -1./(4*b2_v);
426 tau1 = tuning * spdiag(tau1); 426 tau1 = tuning * spdiag(tau1);
427 tau2 = 1/2; 427 tau2 = 1/2;