Mercurial > repos > public > sbplib
view diracPrimDiscr.m @ 1137:2ff1f366e64a feature/laplace_curvilinear_test
Fix minimum and correct borrowing in VirtaMin scheme.
author | Martin Almquist <malmquist@stanford.edu> |
---|---|
date | Mon, 10 Jun 2019 13:27:29 +0200 |
parents | 99fd66ffe714 |
children |
line wrap: on
line source
function d = diracPrimDiscr(x_s, x, m_order, s_order, H, derivDir) % n-dimensional delta function, with derivative in direction number derivDir % x_s: source point coordinate vector, e.g. [x, y] or [x, y, z]. % x: cell array of grid point column vectors for each dimension. % m_order: Number of moment conditions % s_order: Number of smoothness conditions % H: cell array of 1D norm matrices default_arg('derivDir', 1); dim = length(x_s); d_1D = cell(dim,1); % If 1D, non-cell input is accepted if dim == 1 && ~iscell(x) d = diracPrimDiscr1D(x_s, x, m_order, s_order, H); else for i = 1:dim if i == derivDir d_1D{i} = diracPrimDiscr1D(x_s(i), x{i}, m_order, s_order, H{i}); else d_1D{i} = diracDiscr1D(x_s(i), x{i}, m_order, s_order, H{i}); end end d = d_1D{dim}; for i = dim-1: -1: 1 % Perform outer product, transpose, and then turn into column vector d = (d_1D{i}*d')'; d = d(:); end end end