Mercurial > repos > public > sbplib
annotate mononomial.m @ 1021:cc61dde120cd feature/advectionRV
Add upwind dissipation to the operator inside Utux2d
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Wed, 19 Dec 2018 20:00:27 +0100 |
parents | 0090a86d8b72 |
children |
rev | line source |
---|---|
770
0090a86d8b72
Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents:
660
diff
changeset
|
1 % calculate a N-D mononomial with powers k in points x: |
0090a86d8b72
Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents:
660
diff
changeset
|
2 % z = x(:,1).^k(1) * x(:,2).^k(2) * ... |
0090a86d8b72
Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents:
660
diff
changeset
|
3 function z = mononomial(x, k) |
0090a86d8b72
Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents:
660
diff
changeset
|
4 assert(size(x,2) == length(k), 'k must have the same length as the width of x'); |
0090a86d8b72
Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents:
660
diff
changeset
|
5 |
0090a86d8b72
Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents:
660
diff
changeset
|
6 if any(k < 0) |
0090a86d8b72
Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents:
660
diff
changeset
|
7 z = x(:,1)*0; |
660
184833fe4c0e
Add monomial, vandermonde and stencil cretation tools
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
8 return |
184833fe4c0e
Add monomial, vandermonde and stencil cretation tools
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
9 end |
770
0090a86d8b72
Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents:
660
diff
changeset
|
10 |
0090a86d8b72
Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents:
660
diff
changeset
|
11 denom = prod(factorial(k)); |
0090a86d8b72
Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents:
660
diff
changeset
|
12 |
0090a86d8b72
Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents:
660
diff
changeset
|
13 for i = 1:length(k) |
0090a86d8b72
Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents:
660
diff
changeset
|
14 x(:,i) = x(:,i).^k(i); |
0090a86d8b72
Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents:
660
diff
changeset
|
15 end |
0090a86d8b72
Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents:
660
diff
changeset
|
16 z = prod(x,2)/denom; |
660
184833fe4c0e
Add monomial, vandermonde and stencil cretation tools
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
17 end |